Builds an Eq instance which differentiates all enum values as it's based on universal
equals.
Builds a Show instance based on toString.
Builds an Eq instance which acts accordingly to the given Eq on the value type.
Builds an Eq instance which acts accordingly to the given Eq on the value type. Allows to
implement different behaviour than eqForEnum, for example grouping several enum values in
special contexts.
Builds a Hash instance from the given Hash on the value type.
Builds a Order instance from the given Order on the value type.
Builds a Show instance from the given Show on the value type.