deliberatelyOmitted x = panic ("Deliberately omitted: " ++ x)
ifFamInstTcName = ifaceTyConName . ifFamInstTyCon
- flattenVectInfo (VectInfo ccVar) =
- IfaceVectInfo [Var.varName v | (v, _) <- varEnvElts ccVar]
+ flattenVectInfo (VectInfo { vectInfoCCVar = ccVar
+ , vectInfoCCTyCon = ccTyCon
+ }) =
+ IfaceVectInfo {
+ ifaceVectInfoCCVar = [ Var.varName v
+ | (v, _) <- varEnvElts ccVar],
+ ifaceVectInfoCCTyCon = [ tyConName t
+ | (t, t_CC) <- nameEnvElts ccTyCon
+ , t /= t_CC],
+ ifaceVectInfoCCTyConReuse = [ tyConName t
+ | (t, t_CC) <- nameEnvElts ccTyCon
+ , t == t_CC]
+ }
-----------------------------
writeIfaceFile :: DynFlags -> ModLocation -> ModIface -> IO ()
tyThingToIfaceDecl (ATyCon tycon)
| isSynTyCon tycon
- = IfaceSyn { ifName = getOccName tycon,
- ifTyVars = toIfaceTvBndrs tyvars,
+ = IfaceSyn { ifName = getOccName tycon,
+ ifTyVars = toIfaceTvBndrs tyvars,
ifOpenSyn = syn_isOpen,
- ifSynRhs = toIfaceType syn_tyki }
+ ifSynRhs = toIfaceType syn_tyki,
+ ifFamInst = famInstToIface (tyConFamInst_maybe tycon)
+ }
| isAlgTyCon tycon
= IfaceData { ifName = getOccName tycon,