summaryrefslogtreecommitdiff
path: root/src/Analysis/Identity.hs
diff options
context:
space:
mode:
authorTom Smeding <tom@tomsmeding.com>2025-03-28 22:40:41 +0100
committerTom Smeding <tom@tomsmeding.com>2025-03-28 22:40:41 +0100
commitc06b4bd71a94601d467b509a26c08020d1fbd794 (patch)
treeb16981c769231ef4af2c3ec5f002a01f857d95c6 /src/Analysis/Identity.hs
parenta3ba3bdc5c2f9606a0b98cdf53183841cca07eac (diff)
Pass around an accumMap (but it's empty still)
Diffstat (limited to 'src/Analysis/Identity.hs')
-rw-r--r--src/Analysis/Identity.hs5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/Analysis/Identity.hs b/src/Analysis/Identity.hs
index 095d0fa..54f7cd2 100644
--- a/src/Analysis/Identity.hs
+++ b/src/Analysis/Identity.hs
@@ -3,7 +3,9 @@
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Analysis.Identity (
+ ValId(..),
identityAnalysis,
+ identityAnalysis',
) where
import Data.Foldable (toList)
@@ -50,6 +52,9 @@ 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' env term = snd (runIdGen 0 (idana env term))
+
idana :: SList ValId env -> Expr x env t -> IdGen (ValId t, Expr ValId env t)
idana env expr = case expr of
EVar _ t i -> do