- -> Bool -- Declared infix
- -> [StrictnessMark] -> [FieldLabel]
- -> [TyVar] -> [TyVar]
- -> [(TyVar,Type)] -> ThetaType
- -> [Type] -> TyCon
- -> ThetaType -> DataConIds
+ -> Bool -- ^ Is the constructor declared infix?
+ -> [StrictnessMark] -- ^ Strictness annotations written in the source file
+ -> [FieldLabel] -- ^ Field labels for the constructor, if it is a record,
+ -- otherwise empty
+ -> [TyVar] -- ^ Universally quantified type variables
+ -> [TyVar] -- ^ Existentially quantified type variables
+ -> [(TyVar,Type)] -- ^ GADT equalities
+ -> ThetaType -- ^ Theta-type occuring before the arguments proper
+ -> [Type] -- ^ Original argument types
+ -> Type -- ^ Original result type
+ -> TyCon -- ^ Representation type constructor
+ -> ThetaType -- ^ The "stupid theta", context of the data declaration
+ -- e.g. @data Eq a => T a ...@
+ -> DataConIds -- ^ The Ids of the actual builder functions