There are concepts that are more universally useful than others. Pure functions and immutable structures as a default choice seems to fall in that category. Monads, on the other hand, are tightly coupled to Haskell and of lesser usefulness outside that language. Definitely worth learning and understanding (monad transformers... bit less so, although they do expose the flaws in monads)