Я пытаюсь определить целочисленные наборы Haskell с помощью операции объединения как Моноид .
module MyMonoid where
import qualified Data.IntSet as S
data MyMonoid = MyMonoid S.IntSet
instance Monoid MyMonoid where
mempty = MyMonoid S.empty
MyMonoid m1 `mappend` MyMonoid m2 = MyMonoid (S.union m1 m2)
Я получаю ошибку
• No instance for (Semigroup Markup)
arising from the superclasses of an instance declaration
• In the instance declaration for ‘Monoid MyMonoid’
Что яделать неправильно?Это кажется таким простым, и я копирую синтаксис, который я вижу в примерах вроде this , но я не могу понять, почему возникает эта ошибка.