"[] has some list type, say [a]."
map(f, []) = [] map(f, h:t) = f(h) : map(f, t)
"h must have type a and t must have type [a]."