fixed minor bug in dedupNames

This commit is contained in:
William Ball 2024-12-11 13:26:05 -08:00
parent e6f9d71c57
commit 1ed998c025

View file

@ -65,13 +65,16 @@ dedupNames :: Expr -> Expr
dedupNames = go [] dedupNames = go []
where where
varName :: [Text] -> Text -> Int -> Text varName :: [Text] -> Text -> Int -> Text
varName bs x k = case bs !!? k of varName bs x k =
Nothing -> x if x == ""
Just x' -> then x
let count = (length $ filter (== x') $ drop (k + 1) bs) else case bs !!? k of
in if count > 0 Nothing -> x
then x <> printLevel count Just x' ->
else x let count = (length $ filter (== x') $ drop (k + 1) bs)
in if count > 0
then x <> printLevel count
else x
go :: [Text] -> Expr -> Expr go :: [Text] -> Expr -> Expr
go bs (Var x k) = Var (varName bs x (fromIntegral k)) k go bs (Var x k) = Var (varName bs x (fromIntegral k)) k