Tom Lokhorst and Sebastiaan Visser present the AwesomePrelude. A reimplementation of the Haskell prelude in which all data types have been replaced with type classes.
Embedded Domain Specific Languages (DSLs) can implement these type classes in the AwesomePrelude to get access to the functions defined in terms of the type classes. For example: by implementing the `BoolC` type class, a DSL gets to use the `(&&)`, `(||)` and `not` functions.