Template Haskell support for equality constraints
[ghc-hetmet.git] / compiler / deSugar / MatchCon.lhs
index 4e9ee8e..bba9d42 100644 (file)
@@ -25,6 +25,7 @@ import DataCon
 import TcType
 import Type
 import CoreSyn
+import MkCore
 import DsMonad
 import DsUtils
 import Util    ( takeList )
@@ -102,7 +103,7 @@ matchOneCon vars ty (eqn1 : eqns)   -- All eqns for a single constructor
   = do { (wraps, eqns') <- mapAndUnzipM shift (eqn1:eqns)
        ; arg_vars <- selectMatchVars (take (dataConSourceArity con1) 
                                            (eqn_pats (head eqns')))
-               -- Use the new arugment patterns as a source of 
+               -- Use the new argument patterns as a source of 
                -- suggestions for the new variables
        ; match_result <- match (arg_vars ++ vars) ty eqns'
        ; return (con1, tvs1 ++ dicts1 ++ arg_vars, 
@@ -124,7 +125,7 @@ matchOneCon vars ty (eqn1 : eqns)   -- All eqns for a single constructor
        = do { prs <- dsLHsBinds bind
             ; return (wrapBinds (tvs `zip` tvs1) 
                       . wrapBinds (ds  `zip` dicts1)
-                      . mkDsLet (Rec prs),
+                      . mkCoreLet (Rec prs),
                       eqn { eqn_pats = conArgPats con1 arg_tys args ++ pats }) }
 
 conArgPats :: DataCon