]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/Parser.hs
Doc fix, optimization, and more.
[Lucu.git] / Network / HTTP / Lucu / Parser.hs
index f2e4be337abdc375503ec4761385a2222a6fbedb..c40cacd0d4c17521817c7e3e8d2fb6c79394731d 100644 (file)
@@ -93,20 +93,20 @@ instance Monad Parser where
 failP :: Parser a
 failP = fail undefined
 
--- |@'parse' p bstr@ parses @bstr@ with @p@ and returns @(result,
--- remaining)@.
-parse :: Parser a -> LazyByteString -> (ParserResult a, LazyByteString)
+-- |@'parse' p bstr@ parses @bstr@ with @p@ and returns @(result,
+-- remaining #)@.
+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