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