Derive implementations of decidable equality.
Attempt to derive the body of an implementation of decidable
equality based on an existing type signature.
The function signature must provide enough information for the
deriving to occur. It must consist of zero or more non-constraint
arguments followed by zero or more constraint arguments, followed
by the two values to compare. The constraint arguments must
provide sufficient implementations of DecEq
to decide the equality of
each constructor field. The final two arguments to the function
declaration must be the two values that will be compared for
equality.
the name of the function whose type has been declared