module Network.HTTP.Lucu.Utils ( splitBy -- (a -> Bool) -> [a] -> [[a]] , trim -- (a -> Bool) -> [a] -> [a] , noCaseEq -- String -> String -> Bool , isWhiteSpace -- Char -> Bool ) where import Data.Char import Data.List splitBy :: (a -> Bool) -> [a] -> [[a]] splitBy isSeparator src = case break isSeparator src of (last , [] ) -> last : [] (first, sep:rest) -> first : splitBy isSeparator rest trim :: (a -> Bool) -> [a] -> [a] trim p = trimTail . trimHead where trimHead = dropWhile p trimTail = reverse . trimHead . reverse noCaseEq :: String -> String -> Bool noCaseEq a b = (map toLower a) == (map toLower b) isWhiteSpace :: Char -> Bool isWhiteSpace = flip elem " \t\r\n"