Sorry, joyfulmantis, your comment appears “dead”, so I can't directly reply to it.
Haskell's standard type classes represent algebraic structures. And to understand algebraic structures, you need the axioms that define them. There is no way around this. Of course, you also need examples, but they are by no means a replacement for definitions. If you don't understand the definitions, then you don't understand the abstraction at all.
The laws are important if you want to implement these typeclasses in your own data type, but I feel for new comers who will only want to use them in other data types it is better to first focus on practical application. I feel that laws and formal definitions tend to drive away newcomers from a subject that need not be so hard to understand.
[+] [-] catnaroek|8 years ago|reply
Haskell's standard type classes represent algebraic structures. And to understand algebraic structures, you need the axioms that define them. There is no way around this. Of course, you also need examples, but they are by no means a replacement for definitions. If you don't understand the definitions, then you don't understand the abstraction at all.
[+] [-] catnaroek|8 years ago|reply
[+] [-] joyfulmantis|8 years ago|reply
[+] [-] hakonrossebo|8 years ago|reply