import TcEnv (tcLookupTyCon)
import TcRnMonad (TcM, newUnique)
import HscTypes
-
+
import SrcLoc
import Bag
import Outputable
foldBal mkProd [ arg d a
| (d,a) <- zip (metaSTyCons !! i) l ]
- arg d t = trace (showPpr t) $ mkS d (recOrPar t (getTyVar_maybe t))
+ arg d t = mkS d (recOrPar t (getTyVar_maybe t))
-- Argument is not a type variable, use Rec0
- recOrPar t Nothing = trace "Rec0" $ mkRec0 t
+ recOrPar t Nothing = mkRec0 t
-- Argument is a type variable, use Par0
- recOrPar t (Just _) = trace "Par0" $ mkPar0 t
+ recOrPar t (Just _) = mkPar0 t
metaDTyCon = mkTyConTy (metaD metaDts)
metaCTyCons = map mkTyConTy (metaC metaDts)
appVars = map wrapArg_E vars
prod a b = prodDataCon_RDR `nlHsApps` [a,b]
--- TODO: Produce a P0 when v is a parameter
wrapArg_E :: RdrName -> LHsExpr RdrName
wrapArg_E v = mkM1_E (k1DataCon_RDR `nlHsVarApps` [v])
-- This M1 is meta-information for the selector
appVars = map wrapArg_P vars
prod a b = prodDataCon_RDR `nlConPat` [a,b]
--- TODO: Produce a P0 when v is a parameter
wrapArg_P :: RdrName -> LPat RdrName
wrapArg_P v = mkM1_P (k1DataCon_RDR `nlConVarPat` [v])
-- This M1 is meta-information for the selector