summaryrefslogtreecommitdiff
path: root/src/Language.hs
diff options
context:
space:
mode:
authorTom Smeding <tom@tomsmeding.com>2025-05-25 23:35:31 +0200
committerTom Smeding <tom@tomsmeding.com>2025-05-25 23:35:31 +0200
commitc36849cb6247f957b4e6b093e16d04421c8cea3d (patch)
treefdcdcec5c598c95c493ede2782a96563a32b4b5f /src/Language.hs
parentb0b562e5000dbcac8b944801e7ab96556855a4ff (diff)
ERecompute
Diffstat (limited to 'src/Language.hs')
-rw-r--r--src/Language.hs3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/Language.hs b/src/Language.hs
index 9fd5dd3..7a780a0 100644
--- a/src/Language.hs
+++ b/src/Language.hs
@@ -169,6 +169,9 @@ custom :: (Var n1 a :-> Var n2 b :-> NExpr ['(n2, b), '(n1, a)] t)
custom (n1 :-> n2 :-> a) (nf1 :-> nf2 :-> b) (nr1 :-> nr2 :-> c) e1 e2 =
NECustom n1 n2 a nf1 nf2 b nr1 nr2 c e1 e2
+recompute :: NExpr env a -> NExpr env a
+recompute = NERecompute
+
with :: forall t a env acname. KnownMTy t => NExpr env t -> (Var acname (TAccum t) :-> NExpr ('(acname, TAccum t) : env) a) -> NExpr env (TPair a t)
with a (n :-> b) = NEWith (knownMTy @t) a n b