module OmitType; type List A := | nil | cons A (List A); map {A B} (f : A → B) : List A → List B | nil := nil | (cons h t) := cons (f h) (map f t);