adapt HetMet extensions to new GHC coercion representation
[ghc-hetmet.git] / compiler / deSugar / Desugar.lhs
index b2131ca..7ba91d9 100644 (file)
@@ -15,6 +15,7 @@ import HsSyn
 import TcRnTypes
 import MkIface
 import Id
+import Pair
 import Name
 import CoreSyn
 import CoreSubst
@@ -577,13 +578,14 @@ simplify (Var v)                 = Var v
 simplify (App e1 e2)             = App (simplify e1) (simplify e2)
 simplify (Lit lit)               = Lit lit
 simplify (Note note e)           = Note note (simplify e)
-simplify (Cast e co)             = if tcEqType (fst $ coercionKind co) (snd $ coercionKind co)
+simplify (Cast e co)             = if eqType (fst $ unPair $ coercionKind co) (snd $ unPair $ coercionKind co)
                                        then simplify e
                                        else Cast (simplify e) co
 simplify (Lam v e)               = Lam v (simplify e)
-simplify (Type t)                = Type t
 simplify (Case e b ty as)        = Case (simplify e) b ty (map (\(a,b,e) -> (a,b,simplify e)) as)
 simplify (Let bind body)         = foldr Let (simplify body) (simplifyBind bind)
+simplify (Type t)                = Type t
+simplify (Coercion co)           = Coercion co
 
 simplifyBind :: Bind CoreBndr -> [Bind CoreBndr]
 simplifyBind (NonRec b e)             = [NonRec b (simplify e)]