@@ -14,7 +14,7 @@ import Language.PureScript.Names
14moduleNameToCpp :: ModuleName -> Text
14moduleNameToCpp :: ModuleName -> Text
15moduleNameToCpp (ModuleName pns) =
15moduleNameToCpp (ModuleName pns) =
16 let name = T.intercalate "_" (runProperName `map` pns)
16 let name = T.intercalate "_" (runProperName `map` pns)
17− in if nameIsCppBuiltIn name then ("$" <> name <> "$") else name
17+ in if nameIsCppBuiltIn name then "$$" <> name else name
19-- | Convert an 'Ident' into a valid C++ identifier:
19-- | Convert an 'Ident' into a valid C++ identifier:
@@ -34,7 +34,7 @@ unusedName = "$unused$"
35properToCpp :: Text -> Text
35properToCpp :: Text -> Text
36properToCpp name
36properToCpp name
37− | nameIsCppReserved name || nameIsCppBuiltIn name || prefixIsReserved name = name <> "_"
37+ | nameIsCppReserved name || nameIsCppBuiltIn name || prefixIsReserved name = "$$" <> name
38 | otherwise = T.concatMap identCharToText name
38 | otherwise = T.concatMap identCharToText name
40-- | Test if a string is a valid AST identifier without escaping.
40-- | Test if a string is a valid AST identifier without escaping.