Reduce Uncurry when possible
[darcs-mirror-polyfix.git] / Term2Expr.hs
index b653895..be07e65 100644 (file)
@@ -1,6 +1,6 @@
 {-# LANGUAGE PatternGuards #-}
 
-module Term2Expr where
+module Term2Expr (insertTermsInCondition, term2Expr, termCond2Exprs) where
 
 import ExFindExtended
 import Expr
@@ -78,7 +78,12 @@ absTerm2Expr ex (T.ECase e vl el vr er)
                                    (absTerm2Expr ex e)
 absTerm2Expr ex (T.Right t)     = ERight (absTerm2Expr ex t)
 absTerm2Expr ex (T.Left  t)     = ELeft (absTerm2Expr ex t)
-absTerm2Expr ex (T.PCase _ _ _ _) = trace "Can not convert PCase" undefined
+absTerm2Expr ex (T.PCase pt v1 v2 e) = app' (app'
+                               Uncurry
+                               (lambda' (E.Var (termVar2EVar v1))
+                                         (lambda' (E.Var (termVar2EVar v2))
+                                                  (absTerm2Expr ex e))))
+                                (absTerm2Expr ex pt)
 
 termVar2EVar (T.TermVar i) = E.FromTypVar i