X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FbasicTypes%2FDataCon.lhs;h=af75ec99ad143f0b0548cefbb36814f5b4ae0d85;hb=71cad0e1783707f325973a537b3b0a74300bd866;hp=2fc802413f76fc259b49e37be3a811bcc43ff837;hpb=5ed1437f5cda8190cc6538284cf0dc761549db8e;p=ghc-hetmet.git diff --git a/compiler/basicTypes/DataCon.lhs b/compiler/basicTypes/DataCon.lhs index 2fc8024..af75ec9 100644 --- a/compiler/basicTypes/DataCon.lhs +++ b/compiler/basicTypes/DataCon.lhs @@ -11,7 +11,7 @@ module DataCon ( dataConRepType, dataConSig, dataConFullSig, dataConName, dataConTag, dataConTyCon, dataConUserType, dataConUnivTyVars, dataConExTyVars, dataConAllTyVars, dataConResTys, - dataConEqSpec, dataConTheta, dataConStupidTheta, + dataConEqSpec, eqSpecPreds, dataConTheta, dataConStupidTheta, dataConInstArgTys, dataConOrigArgTys, dataConInstOrigArgTys, dataConRepArgTys, dataConFieldLabels, dataConFieldType, @@ -32,16 +32,17 @@ module DataCon ( import Type ( Type, ThetaType, substTyWith, substTyVar, mkTopTvSubst, mkForAllTys, mkFunTys, mkTyConApp, mkTyVarTy, mkTyVarTys, - splitTyConApp_maybe, newTyConInstRhs, - mkPredTys, isStrictPred, pprType + splitTyConApp_maybe, newTyConInstRhs, + mkPredTys, isStrictPred, pprType, mkPredTy ) import Coercion ( isEqPred, mkEqPred ) import TyCon ( TyCon, FieldLabel, tyConDataCons, isProductTyCon, isTupleTyCon, isUnboxedTupleTyCon, isNewTyCon, isRecursiveTyCon ) import Class ( Class, classTyCon ) -import Name ( Name, NamedThing(..), nameUnique ) -import Var ( TyVar, Id ) +import Name ( Name, NamedThing(..), nameUnique, mkSysTvName, mkSystemName ) ++ import Var ( TyVar, CoVar, Id, mkTyVar, tyVarKind, setVarUnique, ++ mkCoVar ) import BasicTypes ( Arity, StrictnessMark(..) ) import Outputable import Unique ( Unique, Uniquable(..) ) @@ -49,6 +50,7 @@ import ListSetOps ( assoc, minusList ) import Util ( zipEqual, zipWithEqual ) import List ( partition ) import Maybes ( expectJust ) +import FastString \end{code} @@ -602,6 +604,7 @@ dataConInstArgTys (MkData {dcRepArgTys = arg_tys, where tyvars = univ_tvs ++ ex_tvs + -- And the same deal for the original arg tys dataConInstOrigArgTys :: DataCon -> [Type] -> [Type] dataConInstOrigArgTys dc@(MkData {dcOrigArgTys = arg_tys,