Container-Datentypen sollten generisch polymorph im Inhaltstyp sein
data Tree a = Leaf {} | Branch { left :: Tree a, key :: a , right :: a } data List a = Nil {} | Cons { head :: a, tail :: List a }(Kleinbuchstabe = Typvariable, implizit all-quantifiziert)
eine generisch polymorphe Funktion:
append :: List a -> List a -> List a append xs ys = case xs of