Module documentation for 0.0.1.2

Template Haskell code to implement default implementations
for type-class functions based on which functions are
already implemented. Currently extremely crude but
still fairly effective.

When defining a type class with many functions, each
of which can be implemented based on arbitrary subsets
of the others, the standard default-implementation
concept breaks down quite badly. This library provides
a system by which more complex rules can be described
for choosing default implementations based on which
ones the user supplies. These implementations can
additionally be given "suitability scores", so that
when multiple possible choices could be made, the
library can choose the "best" one.