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