由于everyMonad
是一个Monoid
关于排序操作的。为什么不在haskell中Monad
继承?Monoid
问问题
444 次
1 回答
13
它不必是Monad
偶数,这适用于每个Applicative
. 所以是的,你可以定义:
class (Functor f, Monoid (f ())) => Applicative f where
但这意味着Monoid
每次编写实例时都必须提供Applicative
实例。这可能很烦人,当然因为这个Monoid
实例不会经常使用。
更好的解决方案是创建一个 newtype 包装器f ()
,然后您可以Monoid
一劳永逸地为所有应用函子提供一个实例。在reducers 包中有一个现成的。
于 2013-05-14T16:57:19.673 回答