X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2FdeSugar%2FDesugar.lhs;h=7ba91d97de097b63779f03de91b71ae527fc590a;hp=b2131ca4f2a2cf6d2cbf6dfd6f59aa5e7458e974;hb=41cecc14547b049cec20e827ceae8ff312c9ff4f;hpb=b2524b3960999fffdb3767900f58825903f6560f diff --git a/compiler/deSugar/Desugar.lhs b/compiler/deSugar/Desugar.lhs index b2131ca..7ba91d9 100644 --- a/compiler/deSugar/Desugar.lhs +++ b/compiler/deSugar/Desugar.lhs @@ -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)]