-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Combinators for unorthodox function composition -- -- Combinators for unorthodox function composition @package composition @version 1.0.0.1 module Data.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) --(.:) :: (c -> d) -> (a -> b -> c) -> a -> b -> d -- | Equivalent to .: -- -- The pattern of appending asterisks is more straightforward to extend -- to similar functions: (compose2 = .*, compose3 = .**, etc). However, -- .: has been commonly adopted amongst Haskellers, and the need -- for compose3 and beyond is rare in practice. (.*) :: (c -> d) -> (a -> b -> c) -> a -> b -> d (.**) :: (d -> e) -> (a -> b -> c -> d) -> a -> b -> c -> e (.***) :: (d -> e) -> (a -> a1 -> b -> c -> d) -> a -> a1 -> b -> c -> e (.****) :: (d -> e) -> (a -> a1 -> a2 -> b -> c -> d) -> a -> a1 -> a2 -> b -> c -> e (.*****) :: (d -> e) -> (a -> a1 -> a2 -> a3 -> b -> c -> d) -> a -> a1 -> a2 -> a3 -> b -> c -> e (.******) :: (d -> e) -> (a -> a1 -> a2 -> a3 -> a4 -> b -> c -> d) -> a -> a1 -> a2 -> a3 -> a4 -> b -> c -> e (.*******) :: (d -> e) -> (a -> a1 -> a2 -> a3 -> a4 -> a5 -> b -> c -> d) -> a -> a1 -> a2 -> a3 -> a4 -> a5 -> b -> c -> e (.********) :: (d -> e) -> (a -> a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> b -> c -> d) -> a -> a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> b -> c -> e compose2 :: (c -> d) -> (a -> b -> c) -> a -> b -> d compose3 :: (d -> e) -> (a -> b -> c -> d) -> a -> b -> c -> e compose4 :: (d -> e) -> (a -> a1 -> b -> c -> d) -> a -> a1 -> b -> c -> e compose5 :: (d -> e) -> (a -> a1 -> a2 -> b -> c -> d) -> a -> a1 -> a2 -> b -> c -> e compose6 :: (d -> e) -> (a -> a1 -> a2 -> a3 -> b -> c -> d) -> a -> a1 -> a2 -> a3 -> b -> c -> e compose7 :: (d -> e) -> (a -> a1 -> a2 -> a3 -> a4 -> b -> c -> d) -> a -> a1 -> a2 -> a3 -> a4 -> b -> c -> e compose8 :: (d -> e) -> (a -> a1 -> a2 -> a3 -> a4 -> a5 -> b -> c -> d) -> a -> a1 -> a2 -> a3 -> a4 -> a5 -> b -> c -> e compose9 :: (d -> e) -> (a -> a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> b -> c -> d) -> a -> a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> b -> c -> e