(f .: g) x y = f (g x y)Example usage:
concatMap :: (a -> [b]) -> [a] -> [b] concatMap = concat .: mapNotice 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)
(f ... g) x y === f (g x y)
(f .: g) x y = f (g x y)or,
f .: g = curry (f . uncurry g)This is the same as the common idiom (f .) . g but more easily extended to multiple uses, due to the fixity declaration.
f .: g ≡ (f .) . g ≡ \c d -> f (g c d)