@@ -297,14 +297,14 @@ matchToJS span match =
297clauseToJS span var (Clause value vars e) = do
297clauseToJS span var (Clause value vars e) = do
298 let vars' = map (\n -> var ++ "._" ++ show n) [0..]
298 let vars' = map (\n -> var ++ "._" ++ show n) [0..]
299 s <- matchToJS span $ matchSubst (zip vars vars') e
299 s <- matchToJS span $ matchSubst (zip vars vars') e
300− return $ concat [ "\ncase ", case value of
300+ pattern <- case value of
301− Right (Boolean True) -> "true"
301+ Right (Boolean True) -> return "true"
302− Right (Boolean False) -> "false"
302+ Right (Boolean False) -> return "false"
303− Right lit -> show lit
303+ Right lit -> toJS lit
304− Left name -> quoted $ case List.elemIndices '.' name of
304+ Left name -> return . quoted $ case List.elemIndices '.' name of
305− [] -> name
305+ [] -> name
306− is -> drop (last is + 1) name
306+ is -> drop (last is + 1) name
307− , ":", indent s ]
307+ return $ concat [ "\ncase ", pattern, ":", indent s ]
309jsNil = "_L.Nil"
309jsNil = "_L.Nil"
310jsCons e1 e2 = "_L.Cons(" ++ e1 ++ "," ++ e2 ++ ")"
310jsCons e1 e2 = "_L.Cons(" ++ e1 ++ "," ++ e2 ++ ")"