Fixed typo
Merge pull request #54 from newca12/fix-typo

Fixed typo
Type Class Derivation: Don't use ??? for TC[CNil]

Previous behaviour was unsound when the `TypeClass` instance always used both
arguments eagerly.

Consider an example derivation of an instance for `Int :+: String :+: CNil`.

Previously:
  TC.coproduct(intInstance,
    TC.coproduct(stringInstance, ???))

Type classes which "consume" data are unproblematic: There will never be a
value of type `CNil`, hence the `???` is never executed. On the other hand,
type classes which "produce" data, e.g. `Arbitrary`, would certainly want to
produce something for both cases.

The fix is conceptually simple. We introduce a new method on `TypeClass` called
`coproduct1` which simply maps an instance for type `T` into type `T :+: CNil`.

Now:
  TC.coproduct(intInstance, TC.coproduct1(stringInstance))

Users don't have to change anything, as there is a default implementation for
`coproduct1` (admittedly, not very efficient: it uses `project` internally).
override `coproduct1` in `Show` example to make output less confusing
Merge pull request #55 from larsrh/topic/coproduct1

Type Class Derivation: Don't use ??? for TC[CNil]
Added constraint to prevent generation of spurious `Transposer` instances.
Merge pull request #56 from travisbrown/master

Added constraint to prevent generation of spurious `Transposer` instances.
Better hygiene by using `Type` instead of `TypeTree`
Merge pull request #57 from larsrh/topic/hygiene

Better hygiene by using `Type` instead of `TypeTree`
Removed duplicated this
field and case name support in `TypeClass`
update `Show` example to employ name hinting
added FieldPoly which allows to create polymorphic functions over FieldType without boilerplate
Merge pull request #58 from choedl/master

Removed duplicated this
Merge pull request #59 from drexin/master

added FieldPoly which allows to create polymorphic functions over FieldT...
proper tests for type class instance derivation
reinstate test for `Monoid` derivation
Merge pull request #60 from larsrh/topic/name-hint

Name hinting
check superclasses when deriving instances of type classes
Merge pull request #62 from larsrh/topic/safety-first

Check superclasses when deriving instances of type classes