Instances for everyone, free: generic programming in Haskell
Haskell encourages creating as many data types as are needed to model the problem domain correctly. However, often they need to implement one or several helper typeclasses, with trivial implementations possible. Generics make it possible to describe the rules for producing such implementations once, and use those for all the created data types, reducing the amount of boilerplate and errors.
Target Audience
All