diff options
author | Tom Smeding <tom@tomsmeding.com> | 2025-05-25 23:35:31 +0200 |
---|---|---|
committer | Tom Smeding <tom@tomsmeding.com> | 2025-05-25 23:35:31 +0200 |
commit | c36849cb6247f957b4e6b093e16d04421c8cea3d (patch) | |
tree | fdcdcec5c598c95c493ede2782a96563a32b4b5f /src/Language.hs | |
parent | b0b562e5000dbcac8b944801e7ab96556855a4ff (diff) |
ERecompute
Diffstat (limited to 'src/Language.hs')
-rw-r--r-- | src/Language.hs | 3 |
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 |