Definition eines Besucher-Objektes
interface Visitor<A,R> { R empty(); R nonempty(A here, R later); }
interface List<A> { .. <R> R visit (Visitor<A,R> v); }