@@ -68,11 +68,7 @@ convertRecursiveLets = everywhereOnCpp go
6868convertRecursive :: [Text] -> [Cpp] -> [Cpp]
6969-------------------------------------------------------------------------------------------------
7070convertRecursive names cpps
71− | not $ null lets
72− = defines ++
73− [letTable] ++
74− (everywhereOnCpp remRecLet <$> cpps) ++
75− undefines
71+ | (_:_) <- lets = (everywhereOnCppTopDown remRecLet <$> cpps) ++ undefines
7672 where
7773 tableName :: Text
7874 tableName = "let"
@@ -93,8 +89,10 @@ convertRecursive names cpps
9389 recLet _ = []
9490 --
9591 remRecLet :: Cpp -> Cpp
96− remRecLet (CppVariableIntroduction (name, _) _ (Just _))
92+ remRecLet cpp@(CppVariableIntroduction (name, _) _ (Just _))
93+ | name == head names = CppNamespace "" $ defines ++ [letTable]
9794 | name `elem` names = CppNoOp
95+ | otherwise = cpp
9896 remRecLet cpp = cpp
9997 --
10098 tableItem :: Cpp -> (Text, Cpp)