特定のデータ型のMonadインスタンスを宣言する必要があります。
data M m a = Mk (m (Maybe a))
instance (Monad m) => Monad (M m) where
return x = Mk (m (Just x))
Mk (m (Nothing)) >>= f = Mk (m (Nothing))
Mk (m (Just x)) >>= f = f x
しかし、私は得ます:
test.hs:6:7: Parse error in pattern: m
Failed, modules loaded: none.
とても簡単かもしれませんが、わかりません!