Don't try to make a tag2con function if we're deriving Ix on a
single-constructor datatype (it isn't needed, and will probably be
type-incorrect anyway).
do_tag2con acc_Names tycon
| isDataTyCon tycon &&
(we_are_deriving enumClassKey tycon ||
- we_are_deriving ixClassKey tycon)
+ we_are_deriving ixClassKey tycon
+ && isEnumerationTyCon tycon)
= returnTc ( (tag2con_RDR tycon, tycon, GenTag2Con)
: (maxtag_RDR tycon, tycon, GenMaxTag)
: acc_Names)