====== if you’d like to express it in a more gene...
# arrow
p
====== if you’d like to express it in a more generic & abstract way, that doesn’t deal with specific monads like ReaderT or EitherT, you’ll write your code in such a way that every function requieres evidence of a MonadReader (monad that can inject dependencies) and MonadError (error handling).