-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Combinators for unorthodox structure composition
--   
--   Combinators for unorthodox structure composition
@package composition-extra
@version 2.0.0

module Control.Monad.Syntax.Five
(=====<<) :: Monad m => (a -> b -> c -> d -> e -> m f) -> m a -> b -> c -> d -> e -> m f
infixr 1 =====<<
(=.===<<) :: Monad m => (a -> b -> c -> d -> e -> m f) -> m b -> a -> c -> d -> e -> m f
infixr 1 =.===<<
(==.==<<) :: Monad m => (a -> b -> c -> d -> e -> m f) -> m c -> a -> b -> d -> e -> m f
infixr 1 ==.==<<
(===.=<<) :: Monad m => (a -> b -> c -> d -> e -> m f) -> m d -> a -> b -> c -> e -> m f
infixr 1 ===.=<<
(====.<<) :: Monad m => (a -> b -> c -> d -> e -> m f) -> m e -> a -> b -> c -> d -> m f
infixr 1 ====.<<

module Control.Monad.Syntax.Four
(====<<) :: Monad m => (a -> b -> c -> d -> m e) -> m a -> b -> c -> d -> m e
infixr 1 ====<<
(=.==<<) :: Monad m => (a -> b -> c -> d -> m e) -> m b -> a -> c -> d -> m e
infixr 1 =.==<<
(==.=<<) :: Monad m => (a -> b -> c -> d -> m e) -> m c -> a -> b -> d -> m e
infixr 1 ==.=<<
(===.<<) :: Monad m => (a -> b -> c -> d -> m e) -> m d -> a -> b -> c -> m e
infixr 1 ===.<<

module Control.Monad.Syntax.Six
(======<<) :: Monad m => (a -> b -> c -> d -> e -> f -> m g) -> m a -> b -> c -> d -> e -> f -> m g
infixr 1 ======<<
(=.====<<) :: Monad m => (a -> b -> c -> d -> e -> f -> m g) -> m b -> a -> c -> d -> e -> f -> m g
infixr 1 =.====<<
(==.===<<) :: Monad m => (a -> b -> c -> d -> e -> f -> m g) -> m c -> a -> b -> d -> e -> f -> m g
infixr 1 ==.===<<
(===.==<<) :: Monad m => (a -> b -> c -> d -> e -> f -> m g) -> m d -> a -> b -> c -> e -> f -> m g
infixr 1 ===.==<<
(====.=<<) :: Monad m => (a -> b -> c -> d -> e -> f -> m g) -> m e -> a -> b -> c -> d -> f -> m g
infixr 1 ====.=<<
(=====.<<) :: Monad m => (a -> b -> c -> d -> e -> f -> m g) -> m f -> a -> b -> c -> d -> e -> m g
infixr 1 =====.<<

module Control.Monad.Syntax.Three
(===<<) :: Monad m => (a -> b -> c -> m d) -> m a -> b -> c -> m d
infixl 1 ===<<
(=.=<<) :: Monad m => (a -> b -> c -> m d) -> m b -> a -> c -> m d
infixl 1 =.=<<
(==.<<) :: Monad m => (a -> b -> c -> m d) -> m c -> a -> b -> m d
infixl 1 ==.<<

module Control.Monad.Syntax.Two
(==<<) :: Monad m => (a -> b -> m c) -> m a -> b -> m c
infixl 1 ==<<
(=.<<) :: Monad m => (a -> b -> m c) -> m b -> a -> m c
infixl 1 =.<<

module Control.Monad.Syntax
(>>==) :: Monad m => m b -> (a -> b -> m c) -> a -> m c
infixr 2 >>==
(>>===) :: Monad m => m c -> (a -> b -> c -> m d) -> a -> b -> m d
infixr 2 >>===
(>>====) :: Monad m => m d -> (a -> b -> c -> d -> m e) -> a -> b -> c -> m e
infixr 2 >>====
(>>=====) :: Monad m => m e -> (a -> b -> c -> d -> e -> m f) -> a -> b -> c -> d -> m f
infixr 2 >>=====
(>>======) :: Monad m => m f -> (a -> b -> c -> d -> e -> f -> m g) -> a -> b -> c -> d -> e -> m g
infixr 2 >>======

module Data.Function.Contravariant.Syntax
(-.) :: (a -> b) -> (b -> c) -> a -> c
infixr 8 -.
(-.:) :: (b -> c) -> (a -> c -> d) -> a -> b -> d
infixr 8 -.:
(-.*) :: () => b -> c -> a -> c -> d -> a -> b -> d
infixr 8 -.*
(-.:.) :: (c -> d) -> (a -> b -> d -> e) -> a -> b -> c -> e
infixr 8 -.:.
(-.**) :: () => c -> d -> a -> b -> d -> e -> a -> b -> c -> e
infixr 8 -.**
(-.::) :: (d -> e) -> (a -> b -> c -> e -> f) -> a -> b -> c -> d -> f
infixr 8 -.::
(-.***) :: () => d -> e -> a -> b -> c -> e -> f -> a -> b -> c -> d -> f
infixr 8 -.***
(-.::.) :: (e -> f) -> (a -> b -> c -> d -> f -> g) -> a -> b -> c -> d -> e -> g
infixr 8 -.::.
(-.****) :: () => e -> f -> a -> b -> c -> d -> f -> g -> a -> b -> c -> d -> e -> g
infixr 8 -.****
(-.:::) :: (f -> g) -> (a -> b -> c -> d -> e -> g -> h) -> a -> b -> c -> d -> e -> f -> h
infixr 8 -.:::
(-.*****) :: () => f -> g -> a -> b -> c -> d -> e -> g -> h -> a -> b -> c -> d -> e -> f -> h
infixr 8 -.*****
(-.:::.) :: (g -> h) -> (a -> b -> c -> d -> e -> f -> h -> i) -> a -> b -> c -> d -> e -> f -> g -> i
infixr 8 -.:::.
(-.******) :: () => g -> h -> a -> b -> c -> d -> e -> f -> h -> i -> a -> b -> c -> d -> e -> f -> g -> i
infixr 8 -.******
(-.::::) :: (h -> i) -> (a -> b -> c -> d -> e -> f -> g -> i -> j) -> a -> b -> c -> d -> e -> f -> g -> h -> j
infixr 8 -.::::
(-.*******) :: () => h -> i -> a -> b -> c -> d -> e -> f -> g -> i -> j -> a -> b -> c -> d -> e -> f -> g -> h -> j
infixr 8 -.*******
(-.::::.) :: (i -> j) -> (a -> b -> c -> d -> e -> f -> g -> h -> j -> k) -> a -> b -> c -> d -> e -> f -> g -> h -> i -> k
infixr 8 -.::::.
(-.********) :: () => i -> j -> a -> b -> c -> d -> e -> f -> g -> h -> j -> k -> a -> b -> c -> d -> e -> f -> g -> h -> i -> k
infixr 8 -.********

module Data.Function.Flip
(<->) :: (a -> b -> c) -> b -> a -> c
infixl 8 <->
flip3 :: (a -> b -> c -> d) -> c -> b -> a -> d
(<-->) :: () => a -> b -> c -> d -> c -> b -> a -> d
infixl 8 <-->
flip4 :: (a -> b -> c -> d -> e) -> d -> b -> c -> a -> e
(<--->) :: () => a -> b -> c -> d -> e -> d -> b -> c -> a -> e
infixl 8 <--->
flip5 :: (a -> b -> c -> d -> e -> f) -> e -> b -> c -> d -> a -> f
(<---->) :: () => a -> b -> c -> d -> e -> f -> e -> b -> c -> d -> a -> f
infixl 8 <---->


-- | Bit-shift style argument re-arrangement
module Data.Function.Slip
slipr :: (a -> b -> c -> d) -> b -> c -> a -> d
(<~>>) :: () => a -> b -> c -> d -> b -> c -> a -> d
infixl 8 <~>>
slipl :: (a -> b -> c -> d) -> c -> a -> b -> d
(<<~>) :: () => a -> b -> c -> d -> c -> a -> b -> d
infixl 8 <<~>
slipr4 :: (a -> b -> c -> d -> e) -> b -> c -> d -> a -> e
(<~~>>) :: () => a -> b -> c -> d -> e -> b -> c -> d -> a -> e
infixl 8 <~~>>
slipl4 :: (a -> b -> c -> d -> e) -> d -> a -> b -> c -> e
(<<~~>) :: () => a -> b -> c -> d -> e -> d -> a -> b -> c -> e
infixl 8 <<~~>
slipr5 :: (a -> b -> c -> d -> e -> f) -> b -> c -> d -> e -> a -> f
(<~~~>>) :: () => a -> b -> c -> d -> e -> f -> b -> c -> d -> e -> a -> f
infixl 8 <~~~>>
slipl5 :: (a -> b -> c -> d -> e -> f) -> e -> a -> b -> c -> d -> f
(<<~~~>) :: () => a -> b -> c -> d -> e -> f -> e -> a -> b -> c -> d -> f
infixl 8 <<~~~>

module Data.Function.Apply
(-$) :: () => a -> b -> c -> b -> a -> c
infixl 8 -$
(--$) :: () => a -> b -> c -> d -> c -> a -> b -> d
infixl 8 --$
(---$) :: () => a -> b -> c -> d -> e -> d -> a -> b -> c -> e
infixl 8 ---$
(----$) :: () => a -> b -> c -> d -> e -> f -> e -> a -> b -> c -> d -> f
infixl 8 ----$

module Data.Function.Twist
twist :: (a -> b -> c -> d -> e) -> c -> d -> a -> b -> e
(<<~~>>) :: () => a -> b -> c -> d -> e -> c -> d -> a -> b -> e
infixl 8 <<~~>>
twist5r :: (a -> b -> c -> d -> e -> f) -> c -> d -> e -> a -> b -> f
(<<~~>>>) :: () => a -> b -> c -> d -> e -> f -> c -> d -> e -> a -> b -> f
infixl 8 <<~~>>>
twist5l :: (a -> b -> c -> d -> e -> f) -> d -> e -> a -> b -> c -> f
(<<<~~>>) :: () => a -> b -> c -> d -> e -> f -> d -> e -> a -> b -> c -> f
infixl 8 <<<~~>>
twist5 :: (a -> b -> c -> d -> e -> f) -> d -> e -> c -> a -> b -> f
(<<<~~>>>) :: () => a -> b -> c -> d -> e -> f -> d -> e -> c -> a -> b -> f
infixl 8 <<<~~>>>
twist6 :: (a -> b -> c -> d -> e -> f -> g) -> d -> e -> f -> a -> b -> c -> g
(<<~~~>>) :: () => a -> b -> c -> d -> e -> f -> g -> d -> e -> f -> a -> b -> c -> g
infixl 8 <<~~~>>
twist7r :: (a -> b -> c -> d -> e -> f -> g -> h) -> d -> e -> f -> g -> a -> b -> c -> h
(<<~~~>>>) :: () => a -> b -> c -> d -> e -> f -> g -> h -> d -> e -> f -> g -> a -> b -> c -> h
infixl 8 <<~~~>>>
twist7l :: (a -> b -> c -> d -> e -> f -> g -> h) -> e -> f -> g -> a -> b -> c -> d -> h
(<<<~~~>>) :: () => a -> b -> c -> d -> e -> f -> g -> h -> e -> f -> g -> a -> b -> c -> d -> h
infixl 8 <<<~~~>>
twist7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> e -> f -> g -> d -> a -> b -> c -> h
(<<<~~~>>>) :: () => a -> b -> c -> d -> e -> f -> g -> h -> e -> f -> g -> d -> a -> b -> c -> h
infixl 8 <<<~~~>>>

module Data.Function.Syntax
(*.) :: (a -> c -> d) -> (b -> c) -> a -> b -> d
infixl 8 *.
(**.) :: (a -> b -> d -> e) -> (c -> d) -> a -> b -> c -> e
infixl 8 **.
(***.) :: (a -> b -> c -> e -> f) -> (d -> e) -> a -> b -> c -> d -> f
infixl 8 ***.
(****.) :: (a -> b -> c -> d -> f -> g) -> (e -> f) -> a -> b -> c -> d -> e -> g
infixl 8 ****.
(*****.) :: (a -> b -> c -> d -> e -> g -> h) -> (f -> g) -> a -> b -> c -> d -> e -> f -> h
infixl 8 *****.
(******.) :: (a -> b -> c -> d -> e -> f -> h -> i) -> (g -> h) -> a -> b -> c -> d -> e -> f -> g -> i
infixl 8 ******.
(*******.) :: (a -> b -> c -> d -> e -> f -> g -> i -> j) -> (h -> i) -> a -> b -> c -> d -> e -> f -> g -> h -> j
infixl 8 *******.
(********.) :: (a -> b -> c -> d -> e -> f -> g -> h -> j -> k) -> (i -> j) -> a -> b -> c -> d -> e -> f -> g -> h -> i -> k
infixl 8 ********.

module Data.Functor.Syntax
(<$$>) :: (Functor f0, Functor f1) => (a -> b) -> f1 (f0 a) -> f1 (f0 b)
infixr 8 <$$>
(<$$$>) :: (Functor f0, Functor f1, Functor f2) => (a -> b) -> f2 (f1 (f0 a)) -> f2 (f1 (f0 b))
infixr 8 <$$$>
(<$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) => (a -> b) -> f3 (f2 (f1 (f0 a))) -> f3 (f2 (f1 (f0 b)))
infixr 8 <$$$$>
(<$$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3, Functor f4) => (a -> b) -> f4 (f3 (f2 (f1 (f0 a)))) -> f4 (f3 (f2 (f1 (f0 b))))
infixr 8 <$$$$$>
(<$~>) :: Functor f0 => f0 (a -> b) -> a -> f0 b
infixl 8 <$~>
(<~$>) :: Functor f0 => (a -> b -> c) -> f0 b -> f0 (a -> c)
infixr 8 <~$>
(<$~~>) :: Functor f0 => f0 (a -> b -> c) -> b -> f0 (a -> c)
infixl 8 <$~~>
(<~~$>) :: Functor f0 => (a -> b -> c -> d) -> f0 c -> f0 (a -> b -> d)
infixr 8 <~~$>
(<$~~~>) :: Functor f0 => f0 (a -> b -> c -> d) -> c -> f0 (a -> b -> d)
infixl 8 <$~~~>
(<~~~$>) :: Functor f0 => (a -> b -> c -> d -> e) -> f0 d -> f0 (a -> b -> c -> e)
infixr 8 <~~~$>
(<$$~>) :: (Functor f0, Functor f1) => f1 (f0 (a -> b)) -> a -> f1 (f0 b)
infixl 8 <$$~>
(<~$$>) :: (Functor f0, Functor f1) => (a -> b -> c) -> f1 (f0 b) -> f1 (f0 (a -> c))
infixr 8 <~$$>
(<$$~~>) :: (Functor f0, Functor f1) => f1 (f0 (a -> b -> c)) -> b -> f1 (f0 (a -> c))
infixl 8 <$$~~>
(<~~$$>) :: (Functor f0, Functor f1) => (a -> b -> c -> d) -> f1 (f0 c) -> f1 (f0 (a -> b -> d))
infixr 8 <~~$$>
(<$$~~~>) :: (Functor f0, Functor f1) => f1 (f0 (a -> b -> c -> d)) -> c -> f1 (f0 (a -> b -> d))
infixl 8 <$$~~~>
(<~~~$$>) :: (Functor f0, Functor f1) => (a -> b -> c -> d -> e) -> f1 (f0 d) -> f1 (f0 (a -> b -> c -> e))
infixr 8 <~~~$$>
(<$$$~>) :: (Functor f0, Functor f1, Functor f2) => f2 (f1 (f0 (a -> b))) -> a -> f2 (f1 (f0 b))
infixl 8 <$$$~>
(<~$$$>) :: (Functor f0, Functor f1, Functor f2) => (a -> b -> c) -> f2 (f1 (f0 b)) -> f2 (f1 (f0 (a -> c)))
infixr 8 <~$$$>
(<$$$~~>) :: (Functor f0, Functor f1, Functor f2) => f2 (f1 (f0 (a -> b -> c))) -> b -> f2 (f1 (f0 (a -> c)))
infixl 8 <$$$~~>
(<~~$$$>) :: (Functor f0, Functor f1, Functor f2) => (a -> b -> c -> d) -> f2 (f1 (f0 c)) -> f2 (f1 (f0 (a -> b -> d)))
infixr 8 <~~$$$>
(<$$$~~~>) :: (Functor f0, Functor f1, Functor f2) => f2 (f1 (f0 (a -> b -> c -> d))) -> c -> f2 (f1 (f0 (a -> b -> d)))
infixl 8 <$$$~~~>
(<~~~$$$>) :: (Functor f0, Functor f1, Functor f2) => (a -> b -> c -> d -> e) -> f2 (f1 (f0 d)) -> f2 (f1 (f0 (a -> b -> c -> e)))
infixr 8 <~~~$$$>
(<$$$$~>) :: (Functor f0, Functor f1, Functor f2, Functor f3) => f3 (f2 (f1 (f0 (a -> b)))) -> a -> f3 (f2 (f1 (f0 b)))
infixl 8 <$$$$~>
(<~$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) => (a -> b -> c) -> f3 (f2 (f1 (f0 b))) -> f3 (f2 (f1 (f0 (a -> c))))
infixr 8 <~$$$$>
(<$$$$~~>) :: (Functor f0, Functor f1, Functor f2, Functor f3) => f3 (f2 (f1 (f0 (a -> b -> c)))) -> b -> f3 (f2 (f1 (f0 (a -> c))))
infixl 8 <$$$$~~>
(<~~$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) => (a -> b -> c -> d) -> f3 (f2 (f1 (f0 c))) -> f3 (f2 (f1 (f0 (a -> b -> d))))
infixr 8 <~~$$$$>
(<$$$$~~~>) :: (Functor f0, Functor f1, Functor f2, Functor f3) => f3 (f2 (f1 (f0 (a -> b -> c -> d)))) -> c -> f3 (f2 (f1 (f0 (a -> b -> d))))
infixl 8 <$$$$~~~>
(<~~~$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) => (a -> b -> c -> d -> e) -> f3 (f2 (f1 (f0 d))) -> f3 (f2 (f1 (f0 (a -> b -> c -> e))))
infixr 8 <~~~$$$$>
(<$$$$$~>) :: (Functor f0, Functor f1, Functor f2, Functor f3, Functor f4) => f4 (f3 (f2 (f1 (f0 (a -> b))))) -> a -> f4 (f3 (f2 (f1 (f0 b))))
infixl 8 <$$$$$~>
(<~$$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3, Functor f4) => (a -> b -> c) -> f4 (f3 (f2 (f1 (f0 b)))) -> f4 (f3 (f2 (f1 (f0 (a -> c)))))
infixr 8 <~$$$$$>
(<$$$$$~~>) :: (Functor f0, Functor f1, Functor f2, Functor f3, Functor f4) => f4 (f3 (f2 (f1 (f0 (a -> b -> c))))) -> b -> f4 (f3 (f2 (f1 (f0 (a -> c)))))
infixl 8 <$$$$$~~>
(<~~$$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3, Functor f4) => (a -> b -> c -> d) -> f4 (f3 (f2 (f1 (f0 c)))) -> f4 (f3 (f2 (f1 (f0 (a -> b -> d)))))
infixr 8 <~~$$$$$>
(<$$$$$~~~>) :: (Functor f0, Functor f1, Functor f2, Functor f3, Functor f4) => f4 (f3 (f2 (f1 (f0 (a -> b -> c -> d))))) -> c -> f4 (f3 (f2 (f1 (f0 (a -> b -> d)))))
infixl 8 <$$$$$~~~>
(<~~~$$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3, Functor f4) => (a -> b -> c -> d -> e) -> f4 (f3 (f2 (f1 (f0 d)))) -> f4 (f3 (f2 (f1 (f0 (a -> b -> c -> e)))))
infixr 8 <~~~$$$$$>
(<.$>) :: Functor f0 => (b -> c) -> f0 (a -> b) -> f0 (a -> c)
infixr 8 <.$>
(<.*$>) :: Functor f0 => (c -> d) -> f0 (a -> b -> c) -> f0 (a -> b -> d)
infixr 8 <.*$>
(<*.$>) :: Functor f0 => (a -> c -> d) -> f0 (b -> c) -> f0 (a -> b -> d)
infixr 8 <*.$>
(<.**$>) :: Functor f0 => (d -> e) -> f0 (a -> b -> c -> d) -> f0 (a -> b -> c -> e)
infixr 8 <.**$>
(<.$$>) :: (Functor f0, Functor f1) => (b -> c) -> f1 (f0 (a -> b)) -> f1 (f0 (a -> c))
infixr 8 <.$$>
(<.*$$>) :: (Functor f0, Functor f1) => (c -> d) -> f1 (f0 (a -> b -> c)) -> f1 (f0 (a -> b -> d))
infixr 8 <.*$$>
(<.**$$>) :: (Functor f0, Functor f1) => (d -> e) -> f1 (f0 (a -> b -> c -> d)) -> f1 (f0 (a -> b -> c -> e))
infixr 8 <.**$$>
(<.$$$>) :: (Functor f0, Functor f1, Functor f2) => (b -> c) -> f2 (f1 (f0 (a -> b))) -> f2 (f1 (f0 (a -> c)))
infixr 8 <.$$$>
(<.*$$$>) :: (Functor f0, Functor f1, Functor f2) => (c -> d) -> f2 (f1 (f0 (a -> b -> c))) -> f2 (f1 (f0 (a -> b -> d)))
infixr 8 <.*$$$>
(<.**$$$>) :: (Functor f0, Functor f1, Functor f2) => (d -> e) -> f2 (f1 (f0 (a -> b -> c -> d))) -> f2 (f1 (f0 (a -> b -> c -> e)))
infixr 8 <.**$$$>
(<.$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) => (b -> c) -> f3 (f2 (f1 (f0 (a -> b)))) -> f3 (f2 (f1 (f0 (a -> c))))
infixr 8 <.$$$$>
(<.*$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) => (c -> d) -> f3 (f2 (f1 (f0 (a -> b -> c)))) -> f3 (f2 (f1 (f0 (a -> b -> d))))
infixr 8 <.*$$$$>
(<.**$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) => (d -> e) -> f3 (f2 (f1 (f0 (a -> b -> c -> d)))) -> f3 (f2 (f1 (f0 (a -> b -> c -> e))))
infixr 8 <.**$$$$>
