Consider the Object-Oriented Languages:
Most people coming from an object-oriented programming background, are familiar with the common and intuitiv
You have typeclasses for different collection aspects:
composition: Monoid (module Data.Monoid)
sequential control: Applicative, Monad (modules Control.Applicative, Control.Monad)
sequential composition: Alternative, MonadPlus (modules Control.Applicative, Control.Monad)
non-sequential mapping and reduction: Functor (mod. Data.Functor), Foldable (mod. Data.Foldable)
sequential mapping and reduction: Traversable (module Data.Traversable)
serialisation: Binary (mod. Data.Binary)
comparison: Eq, Ord (mod. Data.Eq, Data.Ord)
textualisation: Show, Read
deep evaluation (to Normal Form): NFData (mod. Control.DeepSeq)
generic datatype traversability: Data (mod. Data.Data)
Except that monomorphic collections (ByteString, IntSet, Text) cannot implement Functor and Foldable (they require type arity == 1 (Kind: * -> *))
Also neither (Set a) implements Functor.
The package mono-traversable redefines some classes without the monomorphic types exclusion.
Update. There is an attempt to put most functions in typeclasses with the packages mono-traversable and classy-prelude.
library ref, platform