You can derive `map` from these two other functions so it doesn't need to be part of the interface.
Confusingly, map in scala is fmap in Haskell
Confusingly, map in scala is fmap in Haskell