Ho smanettato un pò e sono arrivato a togliere, non so se per pura casualità, l'errore di incompatible types, ora compare questo messaggio strano:
Note: C:\..\..\.\.\.\\SLList.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

Process completed.

Questo è il codice allo stato attuale:
codice:
public class Node <A>
{
	public A chiave;
	
	public Node next;
	
	public Node(A el)
	{
		chiave = el;
		next = null;
	}

	public Node(A el, Node ptr)
	{
		chiave = el;
		next = ptr;
	}
}

public class List <A>
{
	protected Node<A> head;
	
	public List()
	{
		head = null;
	}
	
	public void add(A el)
	{
		head = new Node<A>(el,head);
	}
	
	public A deleteHead()
	{
		Node<A> el = head;
		head = head.next;
		return el.chiave;
	}
}

public class Stack <A>
{
	protected List<A> lista;
	
	public Stack()
	{
		lista = new List<A>();
	}

	public void push(A el)
	{
		lista.add(el);
	}

	public A pop()
	{
		return lista.deleteHead();
	}
}
Comunque sia è il metodo deleteHead() della List il codice critico, è anche l'unico col return, quindi mi sa che ho poco chiaro come si usa un metodo parametrico.