【发布时间】:2015-12-15 20:25:44
【问题描述】:
我刚刚在 haskell-cafe 上问过这个问题,但我想我也不妨在这里问一下。 Backwards m 的以下 Monad 实例是否有效?
{-# Language RecursiveDo #-}
import Control.Applicative.Backwards
import Control.Monad.Fix
instance MonadFix m => Monad (Backwards m) where
m >>= f = Backwards $
do
fin <- forwards (f int)
int <- forwards m
pure fin
如果是这样,我也可以添加这个吗?
instance MonadFix m => MonadFix (Backwards m) where
mfix f = Backwards $ mfix (forwards . f)
【问题讨论】: