我需要使用一个数字(一个Rational)作为Writer Monad的日志类型。不幸的是,数字不是Monoid。是否有一个模块(或其他东西)将Numbers实例化为Monoid,或者我应该自己做?
(我只是想知道它是否已存在于某个地方,不能重新发明轮子,如果需要我自己也不需要帮助)
答案 0 :(得分:9)
将数字视为monoid(附加或产品)有不同的可能方法,因此您必须使用包装器来选择一个。请参阅docs for Data.Monoid - Sum
或Product
。显然,如果你想要一些其他的操作,你应该自己编写。