如何为我的类型制作Monoid实例?

时间:2015-05-13 17:20:45

标签: haskell monoids

我有以下类型:

data SomeType = Var String
    deriving (Eq,Show)

newtype TypeA = TypeA [(String, SomeType)]
  deriving (Eq,Show)

另外,我有一个功能:

fun1 :: TypeA -> TypeA -> TypeA

我可以将此功能用于mappend

我不明白,在我的情况下如何实现Monoid接口。

1 个答案:

答案 0 :(得分:1)

如果您已经有fun1,只需添加一个实例:

instance Monoid TypeA where
   mempty = .... -- fill this with the neutral element
   mappend = fun1

您可能需要mempty = TypeA []