eigentlich:
data List a = Nil {} | Cons { head :: a, tail :: List a }
data [a] = a : [a] | []
length :: [a] -> Int length l = case l of [] -> 0 x : xs -> ...