As evidenced by the Typeclassopedia, the current stack of classes imported from category theory is a bit of a tangled accident of history, rather than a beautiful coherent whole.
In particular, this makes it rather difficult to follow what's happening.
What should this stuff look like, if petty concerns like backwards compatibility, code duplication or tractably short type signatures were not an issue?
For some subsets of the standard classes there have been attempts to give revised hierarchies.
Numeric Typeclasses
In particular, it provides a much richer set of mathematical abstractions.
Besides this, there are many other alternate designs:
Categoric Typeclasses
There's been less work on the category-inspired classes, such as Functor, Monad, Monoid, Applicative and of course, Category.
The most important work is the
Regarding the "categorical" classes, there is also The Other Prelude. The class hierarchy outlined there has been implemented in Frege.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With