úÎIæ*Copyright (c) 2009--2015 wren gayle romanoBSDwren@community.haskell.org provisional Haskell98 Safe-Inferred7Lift a function for multicomposition. This is like the :: of a type signature.GMulticompose a function on the appropriate argument. This is like the -> arrows in a type signature.ŒMulticompose a function on the appropriate argument, calling the left function eagerly. That is, the resulting function will be strict in a# if the left argument is strict in an (assuming the final function of the multicomposition, the one applied to the return value, is also strict).JBinary composition: pass two args to the right argument before composing. (f .: g) x y = f (g x y)or, f .: g = curry (f . uncurry g)%This is the same as the common idiom  (f .) . gK but more easily extended to multiple uses, due to the fixity declaration.ZSecondary composition: compose the right argument on the second arg of the left argument. (f .^ g) x y = f x (g y)…Function composition which calls the right-hand function eagerly; i.e., making the left-hand function strict in its first argument. (f .! g) x = f $! g xWThis defines the composition for the sub-category of strict Haskell functions. If the R class were parameterized by the domain and codomain categories (e.g., a regular  Functor f would be CFunctor (->) (->) f7 instead) then this would allow us to define functors CFunctor (->) (!->) f where fmap f . fmap g = fmap (f .! g).    pointless-fun-1.1.0.6Data.Function.Pointless$::~>!~>.:.^.!baseGHC.BaseFunctor