- (tyvars, _, _, _, _, _) = dataConSig first_con
- data_ty = mkTyConApp tycon (mkTyVarTys tyvars)
- -- tyvars of first_con may be free in field_ty
- -- Now build the selector
-
- selector_ty :: Type
- selector_ty = mkForAllTys tyvars $
- mkFunTy data_ty $
- field_ty
-
- selector_id :: Id
- selector_id
- | isNewTyCon tycon = mkNewTySelId first_field_label selector_ty
- | otherwise = mkRecordSelId first_field_label selector_ty