Function Signature
all the types in functions have to be concrete
a -> Maybe
Incorrect: because Maybe is a type constructor, not a complete type
a -> Maybe a
Correct: polymorphic version
Maybe Int -> Maybe String
Correct: specialize to concrete types