Monads work in eager or lazy languages, it makes little difference. In a sense monads are just mathematical constructions defined by some equations, so what matters is what things evaluate to, not the order they’re evaluated in.
Having said that…in Haskell there is a nice way to use monads to make it convenient to write strict code even though the language is lazy.

]]>