bereits (so ähnlich) eingebaut:
data Bool = False | True
data [a] = [] | (:) { head :: a , tail :: [a] }
1 : (2 : (3 : (4 : []))) = [1, 2, 3, 4] :: [ Int ]
Für xs /= [] gilt: head xs : tail xs = xs
xs /= []
head xs : tail xs = xs