- algTyConTheta :: ClassContext,
-
- dataCons :: [DataCon],
- -- Its data constructors, with fully polymorphic types
- -- This list can be empty, when we import a data type abstractly,
- -- either (a) the interface is hand-written and doesn't give
- -- the constructors, or
- -- (b) in a quest for fast compilation we don't import
- -- the constructors
-
- noOfDataCons :: Int, -- Number of data constructors
- -- Usually this is the same as the length of the
- -- dataCons field, but the latter may be empty if
- -- we imported the type abstractly. But even if we import
- -- abstractly we still need to know the number of constructors
- -- so we can get the return convention right. Tiresome!
-
- algTyConDerivings :: [Class], -- Classes which have derived instances
+ algTyConTheta :: [PredType],
+
+ dataCons :: DataConDetails DataCon,
+
+ selIds :: [Id], -- Its record selectors (if any)