@@ -26,11 +26,13 @@ import Control.Arrow ((***), (<+>))
2626import Language.PureScript.Names
2727
2828identToJs :: Ident -> String
29−identToJs (Ident name) = name
30−identToJs (Op op) = concatMap opCharToString op
31− where
32− opCharToString :: Char -> String
33− opCharToString = (:) '$'. show . ord
29+identToJs (Ident name) = concatMap identCharToString name
30+identToJs (Op op) = concatMap identCharToString op
31+
32+identCharToString :: Char -> String
33+identCharToString c | isAlphaNum c = [c]
34+identCharToString '_' = "_"
35+identCharToString c = '$' : show (ord c)
3436
3537newtype Pattern u a b = Pattern { runPattern :: A.Kleisli (StateT u Maybe) a b } deriving (C.Category, A.Arrow, A.ArrowZero, A.ArrowPlus)
3638