Nesting APIs and ReaderT
environments in Haskell's Servant
Environments, from parent to child (or base to extended):
App
(ReaderT AppEnv IO
):HasLogFunc env
HasDatabase env
HasTracing env
AppAuthenticated
(ReaderT AppAuthenticatedEnv IO
):HasApp env
(everything fromApp
)