自定义MonadReaderT1/MonadReaderT2是否为已存在的Monad转换器类型?
关于动态环境的Monad转换器疑问
我需要实现一种类似ReaderT的Monad转换器,但它的环境不是固定的纯值,而是能在Monad内部访问的动态值(比如需要定期刷新的认证令牌)。为此我写了两个自认为等价的Monad转换器:
newtype MonadReaderT1 r m a = MonadReaderT (ReaderT (r m) m a) newtype MonadReaderT2 r m a = MonadReaderT (ReaderT (m r) m a)
我认为这两者等价的原因是:如果定义newtype B m = B (m A),那么MonadReaderT1 B和MonadReaderT2 A其实是同一个类型。
我感觉这种转换器需要比普通ReaderT更多的实现机制,但怀疑它并不是新发明的东西,想确认是否已经存在现成的同类型实现?
内容的提问来源于stack exchange,提问作者Clinton
相关产品推荐
相关产品推荐

