这可能是我显然缺少的东西,但似乎应该可以,但是却出现了Expecting one more argument to ‘Star' Expected a type, but ‘Star’ has kind ‘* -> *’
错误,我无法解读。
data Star a = None | Union a (Star a)
deriving Show
instance Monoid Star where
mempty = None
mappend None rs = rs
mappend (Union r rs) rst = Union r (mappend rs rst)
答案 0 :(得分:4)
仅具体类型(例如Int)可以是Monoid。 Star是类型为*-> *的抽象类型。 编辑:当然(星a)也可以是Monoid(像[a]),但不是星。
true