Monads are not a superior abstraction. Their composition is not commutative and, worse, not even closed (a composition of two monads may not be a monad). Monad transformers are clumsy syntax-wise and have a performance penalty. When I used Haskell, monads were the most meh part: not a pain, but not anything too cool either. Just some syntax sugar to remove a repetitive wrapping function from a few lines of code.
Comments
Monads are not a superior abstraction. Their composition is not commutative and, worse, not even closed (a composition of two monads may not be a monad). Monad transformers are clumsy syntax-wise and have a performance penalty. When I used Haskell, monads were the most meh part: not a pain, but not anything too cool either. Just some syntax sugar to remove a repetitive wrapping function from a few lines of code.