diff options
| author | Tom Smeding <tom@tomsmeding.com> | 2025-11-13 23:05:45 +0100 |
|---|---|---|
| committer | Tom Smeding <tom@tomsmeding.com> | 2025-11-13 23:05:45 +0100 |
| commit | 0afc66d03e566025a0cd79c65723aa6565f10488 (patch) | |
| tree | 880b5eb66aa4c11f4f58de49be522c1fb49f0497 /src | |
| parent | 239fc967b4dfd0eba6ca5b0a9e0d9a2d29e6ad5e (diff) | |
UnMonoid: Use eunPair
Diffstat (limited to 'src')
| -rw-r--r-- | src/CHAD/AST/UnMonoid.hs | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/CHAD/AST/UnMonoid.hs b/src/CHAD/AST/UnMonoid.hs index 27c5f0a..d3cad25 100644 --- a/src/CHAD/AST/UnMonoid.hs +++ b/src/CHAD/AST/UnMonoid.hs @@ -104,13 +104,10 @@ plus :: SMTy t -> Ex env t -> Ex env t -> Ex env t -- don't destroy the effects! 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 $ - ELet ext (weakenExpr WSink b) $ - EPair ext (plus t1 (EFst ext (EVar ext t (IS IZ))) - (EFst ext (EVar ext t IZ))) - (plus t2 (ESnd ext (EVar ext t (IS IZ))) - (ESnd ext (EVar ext t IZ))) + eunPair a $ \w1 a1 a2 -> + eunPair (weakenExpr w1 b) $ \w2 b1 b2 -> + EPair ext (plus t1 (weakenExpr w2 a1) b1) + (plus t2 (weakenExpr w2 a2) b2) plus (SMTLEither t1 t2) a b = let t = STLEither (fromSMTy t1) (fromSMTy t2) in ELet ext a $ |
