summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/AST/UnMonoid.hs5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/AST/UnMonoid.hs b/src/AST/UnMonoid.hs
index ef01bf8..48dd709 100644
--- a/src/AST/UnMonoid.hs
+++ b/src/AST/UnMonoid.hs
@@ -60,7 +60,8 @@ unMonoid = \case
EError _ t s -> EError ext t s
zero :: SMTy t -> Ex env (ZeroInfo t) -> Ex env t
-zero SMTNil e = elet e $ ENil ext
+-- don't destroy the effects!
+zero SMTNil e = ELet ext e $ ENil ext
zero (SMTPair t1 t2) e =
ELet ext e $ EPair ext (zero t1 (EFst ext (EVar ext (typeOf e) IZ)))
(zero t2 (ESnd ext (EVar ext (typeOf e) IZ)))
@@ -96,7 +97,7 @@ deepZero (SMTScal t) _ = case t of
plus :: SMTy t -> Ex env t -> Ex env t -> Ex env t
-- don't destroy the effects!
-plus SMTNil a b = elet a $ elet (weakenExpr WSink b) $ ENil ext
+plus SMTNil a b = ELet ext a $ ELet ext (weakenExpr WSink b) $ ENil ext
plus (SMTPair t1 t2) a b =
let t = STPair (fromSMTy t1) (fromSMTy t2)
in ELet ext a $