我读到(例如和)所有的基本单体(Mabye,Error,.)从它们相应的单端变压器(MaybeT,ErrorT,.)导出。使用标识单Identity。一个例子是:但是,这当然不会导致Maybe a的构造函数。在中,MaybeT被定义为newtype MaybeT m a = MaybeT (m (Maybe a))。可以与之匹配的构造函数?
我正在尝试编写一个新的monad,它只能包含一个数字。当它失败时,它返回0,就像当它失败时可能monad不返回任何东西一样。这是我到目前为止所知道的: return x = IDnum x fail _ = return 0No instance for (Num a) arising from a use of `IDnum'
它建议我在每