Учитывая Maybe Int
, я попытался mappend
сделать это сам.
$let x = Just 55 :: Maybe Int
$mappend x x
<interactive>:126:1:
No instance for (Monoid Int) arising from a use of `mappend'
In the expression: mappend x x
In an equation for `it': it = mappend x x
Глядя на Maybe, я вижу:
Моноид a = > Моноид (возможно, a)
Так как Int не реализует класс типа Monoid
, это объясняет, почему я не могу использовать mappend
с Maybe Int
.
Но я вспомнил из LYAH, что могу использовать Sum
:
ghci> let x = Sum 55
ghci> mappend x x
Sum {getSum = 110}
Но почему не Int
моноид?