+-- #hide
module Network.HTTP.Lucu.Headers
( Headers
, HasHeaders(..)
- , emptyHeaders -- Headers
- , headersP -- Parser Headers
- , hPutHeaders -- Handle -> Headers -> IO ()
+ , emptyHeaders
+ , headersP
+ , hPutHeaders
)
where
normalize :: String -> String
normalize = trimBody . trim isWhiteSpace
- trimBody = nubBy (\ a b -> a == ' ' && b == ' ')
+ trimBody = foldr (++) []
+ . map (\ s -> if head s == ' ' then
+ " "
+ else
+ s)
+ . group
. map (\ c -> if isWhiteSpace c
then ' '
else c)