npo*_*cop 6 haskell hackage abstract-algebra
为文档代数/ 2.1.1.2/DOC/HTML示出了庞大数量的类型的类.
如何声明有问题的结构必须配备可交换的关联操作和单元/标识元素,但没有其他任何东西(反转,分配等)?
我在想
reduce :: Monoid m => (a -> m) -> [a] -> m
Run Code Online (Sandbox Code Playgroud)
但是Data.Monoid的实例不应该是可交换的,我希望我的函数的用户看到他们需要通过查看类型来使函数工作的可交换性.