]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/Parser.hs
The parser now returns unboxed tuple.
[Lucu.git] / Network / HTTP / Lucu / Parser.hs
index f2e4be337abdc375503ec4761385a2222a6fbedb..5671ec0ccdf8c1c505a9bdf20cd227d8b1e07ec0 100644 (file)
@@ -95,18 +95,18 @@ failP = fail undefined
 
 -- |@'parse' p bstr@ parses @bstr@ with @p@ and returns @(result,
 -- remaining)@.
-parse :: Parser a -> LazyByteString -> (ParserResult a, LazyByteString)
+parse :: Parser a -> LazyByteString -> (# ParserResult a, LazyByteString #)
 parse p input -- input は lazy である必要有り。
     = p `seq`
       let (result, state') = runState (runParser p) (PST input True)
       in
-        result `seq` (result, pstInput state') -- pstInput state' も lazy である必要有り。
+        result `seq` (# result, pstInput state' #) -- pstInput state' も lazy である必要有り。
 
 -- |@'parseStr' p str@ packs @str@ and parses it.
-parseStr :: Parser a -> String -> (ParserResult a, LazyByteString)
+parseStr :: Parser a -> String -> (# ParserResult a, LazyByteString #)
 parseStr p input
     = p `seq` -- input は lazy である必要有り。
-      parse p $! B.pack input
+      parse p (B.pack input)
 
 
 anyChar :: Parser Char