@@ -24,6 +24,7 @@ makeSafe = List.intercalate "." . map dereserve . split . deprime
2424 False -> x
2525 True -> "$" ++ x
2626
27+split :: String -> [String]
2728split = go []
2829 where
2930 go vars str =
@@ -44,6 +45,7 @@ string = StringLit ()
4445dotSep (x:xs) = foldl (DotRef ()) (ref x) (map var xs)
4546obj = dotSep . split
4647
48+varDecl :: String -> Expression () -> VarDecl ()
4749varDecl x expr =
4850 VarDecl () (var x) (Just expr)
4951
@@ -60,6 +62,7 @@ internalImports name =
6062 , varDecl "$moduleName" (string name)
6163 ]
6264
65+literal :: Literal -> Expression ()
6366literal lit =
6467 case lit of
6568 Chr c -> obj "_N.chr" <| string [c]