I have this ReaderT-like monad transformer (inspired by this answer):
ReaderT
{-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE RankNTypes #-} {-#