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