> In production Haskell you need to combine monads using e.g. monad transformers
In some workplaces, yes. However it's pretty tenable to use https://www.parsonsmatt.org/2018/03/22/three_layer_haskell_c... with no or few additional monads.
Alternatively, you can have just a few people that understand how to compose Monads and many others writing code within them.
I'm not sure if I think it's a best practice by any means, but it's a pattern I've seen that avoids having to include monad transformers in onboarding.