* http://www.haskell.org/ghc/docs/7.4.1/html/users_guide/deriving.html#deriving-typeable
* http://www.haskell.org/ghc/docs/7.4.1/html/users_guide/type-class-extensions.html#id3175916
* http://www.haskell.org/ghc/docs/7.4.1/html/users_guide/type-class-extensions.html#overloaded-strings
* http://www.haskell.org/ghc/docs/7.4.1/html/users_guide/template-haskell.html
* http://www.haskell.org/ghc/docs/7.4.1/html/users_guide/type-families.html
* http://www.haskell.org/ghc/docs/7.4.1/html/users_guide/syntax-extns.html#view-patterns

I think the type families extension is just turned on for the ability to witness type equality in type signatures - we don't actually use type families in this library, so I wouldn't worry about learning tha.