hoogle

Safe HaskellSafe-Infered

General.Util

Synopsis

Documentation

(++?) :: String -> String -> String

Only append strings if neither one is empty

sortOn :: Ord a1 => (a -> a1) -> [a] -> [a]

groupOn :: Eq b => (a -> b) -> [a] -> [[a]]

nubOn :: Eq b => (a -> b) -> [a] -> [a]

sortFst :: Ord a => [(a, b)] -> [(a, b)]

groupFst :: Eq b => [(b, b1)] -> [[(b, b1)]]

groupFsts :: Eq k => [(k, v)] -> [(k, [v])]

sortGroupFsts :: Ord k => [(k, v)] -> [(k, [v])]

sortGroupFst :: Ord b => [(b, b1)] -> [[(b, b1)]]

fold :: a -> (a -> a -> a) -> [a] -> a

fold1 :: (a -> a -> a) -> [a] -> a

halves :: [a] -> ([a], [a])

merge :: Ord a => [a] -> [a] -> [a]

mergeBy :: (a -> a -> Ordering) -> [a] -> [a] -> [a]

merges :: Ord a => [[a]] -> [a]

mergesBy :: (a -> a -> Ordering) -> [[a]] -> [a]

split :: Eq a => a -> [a] -> [[a]]

rep :: Eq a => a -> a -> a -> a

reps :: Eq b => b -> b -> [b] -> [b]

splitAtLength :: Int -> [a] -> (Int, [a], [a])

Like splitAt, but also return the number of items that were split. For performance.

rbreak :: (a -> Bool) -> [a] -> ([a], [a])