1. 6
  1.  

  2. 4

    This describes a fairly neat and relatively recent addition to Haskell, but unfortunately one that you have to already be familiar with typeclasses to make sense of. I mostly see this used by serialization libraries, to extend built-in types with the ability to be serialized, in uniform ways.

    [edit: spelling fix]