(I hope IRC is fine with multi-line messages) map f l = l (\x xs -> cons (f x) xs) nil It has parentheses around the cons case. This only gets worse as structures get fancier. Whitespace-based grouping replaces lisp-like code with code that looks more like Haskell, tho slightly cleaner because it doesn't have extra symbols to mark scope changes