Eine Funktion ist generisch, wenn sie nur vom Typkonstruktor abhängt, aber nicht von seinen Argument-Typen.
Bsp: Länge einer Liste, Spiegelliste zu einer Liste.
length :: [a] -> Int reverse :: [a] -> [a]dabei ist a eine freie Typvariable (bekommt einen All-Quantor: für jeden Typ a gilt ...)