-- INVARIANT: Kept in order of increasing tag
-- (see the tag assignment in DataCon.mkDataCon)
Bool -- Cached: True <=> an enumeration type
-- INVARIANT: Kept in order of increasing tag
-- (see the tag assignment in DataCon.mkDataCon)
Bool -- Cached: True <=> an enumeration type
| NewTyCon -- Newtypes always have exactly one constructor
DataCon -- The unique constructor; it has no existentials
| NewTyCon -- Newtypes always have exactly one constructor
DataCon -- The unique constructor; it has no existentials