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)