From c36849cb6247f957b4e6b093e16d04421c8cea3d Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Sun, 25 May 2025 23:35:31 +0200 Subject: ERecompute --- src/Language/AST.hs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/Language') diff --git a/src/Language/AST.hs b/src/Language/AST.hs index 8bcb5e5..7e074df 100644 --- a/src/Language/AST.hs +++ b/src/Language/AST.hs @@ -71,6 +71,9 @@ data NExpr env t where -> NExpr env a -> NExpr env b -> NExpr env t + -- fake halfway checkpointing + NERecompute :: NExpr env t -> NExpr env t + -- accumulation effect on monoids NEWith :: SMTy t -> NExpr env t -> Var name (TAccum t) -> NExpr ('(name, TAccum t) : env) a -> NExpr env (TPair a t) NEAccum :: SMTy t -> SAcPrj p t a -> NExpr env (AcIdx p t) -> NExpr env a -> NExpr env (TAccum t) -> NExpr env TNil @@ -215,6 +218,7 @@ fromNamedExpr val = \case (fromNamedExpr (NTop `NPush` nf1 `NPush` nf2) b) (fromNamedExpr (NTop `NPush` nr1 `NPush` nr2) c) (go e1) (go e2) + NERecompute e -> ERecompute ext (go e) NEWith t a n b -> EWith ext t (go a) (lambda val n b) NEAccum t p a b c -> EAccum ext t p (go a) (go b) (go c) -- cgit v1.2.3-70-g09d2