It's not just monad transformers, monads themselves are pretty awkward to use in any language that's not Haskell. And actually, a lot of FP languages simply don't even have monads at all (OCaml, F#).
Monads should never have escaped Haskell.
Monads should never have escaped Haskell.
They should have put them in a monad.
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