data MyData a b = MyData a b b
为什么第一个实例化好而第二个实例化不好?
instance Foldable (MyData a) where
foldMap f (MyData x y z) = f y <> f z
instance Foldable (MyData a) where
foldMap f (MyData x y z) = f z
f
y
将和都映射z
到一个幺半群中,所以f z
和f y <> f z
是那个幺半群的实例。那么,为什么第二个不行呢?