Container-Datentypen sollten generisch polymorph im Inhaltstyp sein
data Tree a = Leaf {}
| Branch { left :: Tree a, key :: a
, right :: Tree a }
data List a = Nil {}
| Cons { head :: a, tail :: List a }
(Kleinbuchstabe = Typvariable, implizit all-quantifiziert)
Übung: Konstruiere Objekte dieser Typen (aus Prelude):
Maybe a ; Either a b ; (a, b)