Control.Monad.Morph
含まのインスタンスのいずれもMonad m
制約を使用しない、私の知る限りControl.Monad.Morph.hoistにMonadの制約があるのはなぜですか?
class MFunctor t where
hoist :: Monad m => (forall a. m a -> n a) -> t m b -> t n b
が含まれています。どのようにそうすることができますか?制約を使用する有効なインスタンスがありますか(それはhoist id = id
のように、どのように想像するのが難しいですか)? m
にある制約の意味は、n
ではないのですか?
['Control.Monad.Trans.Compose'](https://hackage.haskell.org/package/mmorph-1.0.6/docs/Control-Monad-Trans-Compose)に何か不具合があります。 html)ですが、全てが 'ホイスト 'の' Monad m'なしでうまくコンパイルされます... – Alec
おそらくモナドのためだけに意味があるのでしょうか?私が見る限りモナド変圧器(スタック)上のファンクタです。 – Xeo
@Alec 'Control.Monad.Trans.Compose'には' MFunctor'インスタンスがありません。 – Cirdec