Thursday, August 20, 2015

Type classes in Haskell

The inter-relationships of the type classes in the standard Haskell libraries:



  • Solid arrows point from the general to the specific; that is, if there is an arrow from Foo to Bar it means that every Bar is (or should be, or can be made into) a Foo.
  • Dotted arrows indicate some other sort of relationship.
  • Monad and ArrowApply are equivalent.
  • Semigroup, Apply and Comonad are greyed out since they are not actually (yet?) in the standard Haskell libraries.
Source: Typeclassopedia