.: package:composition

Compose two functions. f .: g is similar to f . g except that g will be fed two arguments instead of one before handing its result to f. This function is defined as
(f .: g) x y = f (g x y)
Example usage:
concatMap :: (a -> [b]) -> [a] -> [b]
concatMap = concat .: map
Notice how two arguments (the function and the list) will be given to map before the result is passed to concat. This is equivalent to:
concatMap f xs = concat (map f xs)
One compact pattern for composition operators is to "count the dots after the first one", which begins with the common .:, and proceeds by first appending another . and then replacing it with :