省略为Monad定义Applicative实例

时间:2015-11-21 14:59:49

标签: haskell monads applicative fam-proposal

我定义了Monad实例的数据只是为了使用do符号。但是,通过GHC 7.10+中实现的JB Nizet's answer,我还必须将数据定义为Applicative和Functor的实例。我不打算定义fmappure<*>,因为它们很容易来自liftMreturnap就Monad而言。

使Penative的超类明确是好的。但是,AMP是否也会在编写那些完全无用的部分时引入一些非常不必要的代码?或者,如果Haskell有一些简单的方法来应对这种情况?有些人喜欢:

class Applicative m => Monad m where
   super pure = return
   super (<*>) = ap
   return :: a -> m a
   (>>=) :: m a -> (a -> m b) -> m b

0 个答案:

没有答案