We largely use the “ReaderT over IO” pattern, so similar to RIO. mtl is in there, but we don’t have a complicated monad transformer stack.I’m not very familiar with the more advanced effects systems, but I’d generally discourage people from building a company with them. Overall I think the benefits are limited, the complexity is higher, and there are a lot of unknown unknowns you’d deal with using them.