; vDataCons <- mapM vectDataConMapping (tyConDataCons tycon)
; return ((name, (tycon, vTycon)), -- (T, T_v)
vDataCons, -- list of (Ci, Ci_v)
- (name, (tycon, paTycon)), -- (T, paT)
+ (vName, (vTycon, paTycon)), -- (T_v, paT)
(name, (tycon, isoTycon))) -- (T, isoT)
}
vectTyConReuseMapping name
vectInfoVar :: VarEnv (Var , Var ), -- (f, f_v) keyed on f
vectInfoTyCon :: NameEnv (TyCon , TyCon), -- (T, T_v) keyed on T
vectInfoDataCon :: NameEnv (DataCon, DataCon), -- (C, C_v) keyed on C
- vectInfoPADFun :: NameEnv (TyCon , Var), -- (C, paT) keyed on T
+ vectInfoPADFun :: NameEnv (TyCon , Var), -- (T_v, paT) keyed on T_v
vectInfoIso :: NameEnv (TyCon , Var) -- (T, isoT) keyed on T
}
-- all of this is always tidy, even in ModGuts