Historically, Haskell has been using monads to encode effects in programs, and monad transformers to provide a modular way to combine several such effects. More recently, algebraic effects have become increasingly popular as a mechanism to replace monad transformers. Often, discussions about the advantages and disadvantages of the various approaches seem to focus on technical details and not on the bigger question of how scalable effectful applications should actually be designed. In this talk, I am hoping to provide a brief introduction to both monad transformers and algebraic effects and then explain how I believe that effectful programs should be structured in such a way that the choice between these approaches becomes mostly irrelevant.