A typeclass is a sort of interface that defines some behavior. If a type is a part of a typeclass, that means that it supports and implements the behavior the typeclass describes.
It provides purely functional data structures to complement those from the Scala standard library. It defines a set of foundational type classes (e.g.
Monad) and corresponding instances for a large number of data structures.
Let’s see if I can learn Scalaz by learning me a Haskell.