aboutsummaryrefslogtreecommitdiff
path: root/src/CHAD/Analysis/Identity.hs
diff options
context:
space:
mode:
authorTom Smeding <tom@tomsmeding.com>2025-11-22 22:41:09 +0100
committerTom Smeding <tom@tomsmeding.com>2025-11-26 17:45:46 +0100
commit179aea534ecfa37de4a713acbe69de039a1dfe20 (patch)
treed54636e24bbc15f1bff17a4e53f247dfcf865887 /src/CHAD/Analysis/Identity.hs
parentae634c056b500a568b2d89b7f8e225404a2c0c62 (diff)
WIP: Think about fusion
Diffstat (limited to 'src/CHAD/Analysis/Identity.hs')
-rw-r--r--src/CHAD/Analysis/Identity.hs6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/CHAD/Analysis/Identity.hs b/src/CHAD/Analysis/Identity.hs
index 212cc7d..b637f88 100644
--- a/src/CHAD/Analysis/Identity.hs
+++ b/src/CHAD/Analysis/Identity.hs
@@ -63,15 +63,15 @@ validSplitEither (VIEither (Right v)) = (Nothing, Just v)
validSplitEither (VIEither' v1 v2) = (Just v1, Just v2)
-- | Symbolic partial evaluation.
-identityAnalysis :: SList STy env -> Expr x env t -> Expr ValId env t
+identityAnalysis :: SList STy env -> Expr NoExt x env t -> Expr NoExt ValId env t
identityAnalysis env term = runIdGen 0 $ do
env' <- slistMapA genIds env
snd <$> idana env' term
-identityAnalysis' :: SList ValId env -> Expr x env t -> Expr ValId env t
+identityAnalysis' :: SList ValId env -> Expr NoExt x env t -> Expr NoExt ValId env t
identityAnalysis' env term = snd (runIdGen 0 (idana env term))
-idana :: SList ValId env -> Expr x env t -> IdGen (ValId t, Expr ValId env t)
+idana :: SList ValId env -> Expr NoExt x env t -> IdGen (ValId t, Expr NoExt ValId env t)
idana env expr = case expr of
EVar _ t i -> do
let v = slistIdx env i