Haskell: algebraischer Datentyp
data List a = Nil | Cons a (List a) Nil :: List a Cons :: a -> List a -> List a
Java: Kompositum
interface List<A> { } class Nil implements List<A> { } class Cons<A> implements List<A> { A head; List<A> tail; }
Scala: case class