Functor is a type class used for types that can be mapped over.
Functor
[]
Maybe a
a
safeDiv x 0 ⇒ Nothing
Either String a
reportDiv x 0 ⇒ Left "Division by 0!"