我正在嘗試爲未來的項目創建monad變換器,但不幸的是,我的Monad typeclasse的實現(>> =)功能不起作用。 首先,這裏是底層的單子的實現: newtype Runtime a = R {
unR :: State EInfo a
} deriving (Monad)
這裏,單子typeclasse的實現是由GHC自動完成(使用GeneralizedNewtypeD
是否有可能使用類型同義詞作爲monad變換器類型構造函數的參數?特別是,如果應用單體變壓器有單一類型同義詞,是否可以將它用作另一單體變壓器中基礎單體的類型? 從我所看到的類型同義詞不接受一流的類型構造,見例如和錯誤以下信息: -- Using type synonym of a monad transformer in another monad transformer.
import Con
我想基於真實世界哈斯克爾的例子中,章單子變形金剛建設MaybeT變壓器單子,: data MaybeT m a = MaybeT { runMT :: m (Maybe a) }
instance (Monad m) => Monad (MaybeT m) where
m >>= f = MaybeT $ do a <- runMT m
case a of