我想将状态monad变换器的状态参数的类型设置为该monad变换器的关联类型。但是,这导致在构建无限类型, s = AssocTyp (StateT s m) a
的直觉,为什么这是不是一个真正的问题是, AssocTyp (StateT s m) a = AssocTyp (StateT s' m) a
所有s和s'。但是,编译器不够聪明,无法解决这个问题。我已经读过,在某些情况下,可以
我目前正试图重载MonadTrans以前的提取函数。我现在的尝试是把内,单子m为关联型Result的实例: class (Monad Result
, MonadTrans m
, MonadReader prefix m
,) => FooReader prefix m where
type Result
runFooReader :: f