-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Pointless plumbing combinators
--
-- Pointless plumbing combinators
@package plumbers
@version 0.0.4
-- | This module is used to generate operators that follow the plumbers
-- symbolic convention for routing parameters.
module Control.Plumbers.TH
-- | Specifies all of the information needed to implement a plumber.
data PlumberSpec
PlumberSpec :: (Exp -> Exp -> Exp) -> Maybe PlumberTypes -> [Int] -> String -> PlumberSpec
-- | The plumber implementation
[plumberOpE] :: PlumberSpec -> Exp -> Exp -> Exp
-- | Optional explicit type signatures
[plumberTypes] :: PlumberSpec -> Maybe PlumberTypes
-- | Arities to generate - 26 is max
[plumberArities] :: PlumberSpec -> [Int]
-- | Prefix to use for operator
[plumberPrefix] :: PlumberSpec -> String
-- | Creates a plumber spec for the given prefix for the generated
-- operators, and the name of the infix operator to use to construct the
-- implementation.
baseSpec :: String -> String -> PlumberSpec
-- | Specifies all of the information needed to construct type declarations
-- for the plumber.
data PlumberTypes
PlumberTypes :: Type -> Type -> Type -> PlumberTypes
-- | Type of the left argument's result
[leftType] :: PlumberTypes -> Type
-- | Type of the right argument's result
[rightType] :: PlumberTypes -> Type
-- | Results type. This needs to be wrapped in a forall naming all of the
-- utilized type variables.
[resultType] :: PlumberTypes -> Type
-- | A basic set of types, which make r' the left type, and r'' the right
-- type. The resultType is a forall that introduces these type variables,
-- and has undefined content. Therefore any implementation in terms of
-- baseTypes needs to redefine resultType, as the Forall has undefined as
-- its content.
baseTypes :: PlumberTypes
-- | Implements all of the plumbers specified by the given
-- PlumberSpec.
implementPlumbers :: PlumberSpec -> DecsQ
-- | Implement only the specific plumber requested.
implementPlumber :: PlumberSpec -> String -> DecsQ
-- | All of the operator names that the given PlumberSpec would implement.
operatorNames :: PlumberSpec -> [[String]]
-- | For now this is just a string-yielding function, to be evaluated by
-- the user, to generate the line defining the fixities. This code should
-- be pasted below the TH invocation of implementPlumbers
aritiesString :: PlumberSpec -> String
appsT :: [Type] -> Type
arrowsT :: [Type] -> Type
tuplesT :: [Type] -> Type
mkVE :: String -> Exp
mkVP :: String -> Pat
mkVT :: String -> Type
mkVB :: String -> TyVarBndr
addForalls :: Type -> Type -> Type
-- | This module defines the specifications used by Control.Plumbers
-- and Control.Plumbers.Monad. These need to be defined in a
-- separate module in order to handle GHC Template Haskell staging
-- restrictions.
module Control.Plumbers.Specs
productSpec :: PlumberSpec
compositionSpec :: PlumberSpec
lbindSpec :: PlumberSpec
rbindSpec :: PlumberSpec
frbindSpec :: PlumberSpec
flbindSpec :: PlumberSpec
productTypes :: PlumberTypes
compositionTypes :: PlumberTypes
lbindTypes :: PlumberTypes
rbindTypes :: PlumberTypes
fbindTypes :: Bool -> PlumberTypes
addMonadContext :: PlumberTypes -> PlumberTypes
addBaseContext :: PlumberTypes -> PlumberTypes
-- | This module contains the plumbing variants of monad operators.
module Control.Plumbers.Monad
(>=***) :: forall a b c d e f r' r'' m. Monad m => (a -> c -> e -> m r'') -> (b -> d -> f -> r'' -> m r') -> (a, b) -> (c, d) -> (e, f) -> m r'
infixr 9 >=***
(>=**&) :: forall a b c d e r' r'' m. Monad m => (a -> c -> e -> m r'') -> (b -> d -> e -> r'' -> m r') -> (a, b) -> (c, d) -> e -> m r'
infixr 9 >=**&
(>=**>) :: forall a b c d e r' r'' m. Monad m => (a -> c -> m r'') -> (b -> d -> e -> r'' -> m r') -> (a, b) -> (c, d) -> e -> m r'
infixr 9 >=**>
(>=**<) :: forall a b c d e r' r'' m. Monad m => (a -> c -> e -> m r'') -> (b -> d -> r'' -> m r') -> (a, b) -> (c, d) -> e -> m r'
infixr 9 >=**<
(>=**^) :: forall a b c d e r' r'' m. Monad m => (a -> c -> m r'') -> (b -> d -> r'' -> m r') -> (a, b) -> (c, d) -> e -> m r'
infixr 9 >=**^
(>=*&*) :: forall a b c d e r' r'' m. Monad m => (a -> c -> d -> m r'') -> (b -> c -> e -> r'' -> m r') -> (a, b) -> c -> (d, e) -> m r'
infixr 9 >=*&*
(>=*&&) :: forall a b c d r' r'' m. Monad m => (a -> c -> d -> m r'') -> (b -> c -> d -> r'' -> m r') -> (a, b) -> c -> d -> m r'
infixr 9 >=*&&
(>=*&>) :: forall a b c d r' r'' m. Monad m => (a -> c -> m r'') -> (b -> c -> d -> r'' -> m r') -> (a, b) -> c -> d -> m r'
infixr 9 >=*&>
(>=*&<) :: forall a b c d r' r'' m. Monad m => (a -> c -> d -> m r'') -> (b -> c -> r'' -> m r') -> (a, b) -> c -> d -> m r'
infixr 9 >=*&<
(>=*&^) :: forall a b c d r' r'' m. Monad m => (a -> c -> m r'') -> (b -> c -> r'' -> m r') -> (a, b) -> c -> d -> m r'
infixr 9 >=*&^
(>=*>*) :: forall a b c d e r' r'' m. Monad m => (a -> d -> m r'') -> (b -> c -> e -> r'' -> m r') -> (a, b) -> c -> (d, e) -> m r'
infixr 9 >=*>*
(>=*>&) :: forall a b c d r' r'' m. Monad m => (a -> d -> m r'') -> (b -> c -> d -> r'' -> m r') -> (a, b) -> c -> d -> m r'
infixr 9 >=*>&
(>=*>>) :: forall a b c d r' r'' m. Monad m => (a -> m r'') -> (b -> c -> d -> r'' -> m r') -> (a, b) -> c -> d -> m r'
infixr 9 >=*>>
(>=*><) :: forall a b c d r' r'' m. Monad m => (a -> d -> m r'') -> (b -> c -> r'' -> m r') -> (a, b) -> c -> d -> m r'
infixr 9 >=*><
(>=*>^) :: forall a b c d r' r'' m. Monad m => (a -> m r'') -> (b -> c -> r'' -> m r') -> (a, b) -> c -> d -> m r'
infixr 9 >=*>^
(>=*<*) :: forall a b c d e r' r'' m. Monad m => (a -> c -> d -> m r'') -> (b -> e -> r'' -> m r') -> (a, b) -> c -> (d, e) -> m r'
infixr 9 >=*<*
(>=*<&) :: forall a b c d r' r'' m. Monad m => (a -> c -> d -> m r'') -> (b -> d -> r'' -> m r') -> (a, b) -> c -> d -> m r'
infixr 9 >=*<&
(>=*<>) :: forall a b c d r' r'' m. Monad m => (a -> c -> m r'') -> (b -> d -> r'' -> m r') -> (a, b) -> c -> d -> m r'
infixr 9 >=*<>
(>=*<<) :: forall a b c d r' r'' m. Monad m => (a -> c -> d -> m r'') -> (b -> r'' -> m r') -> (a, b) -> c -> d -> m r'
infixr 9 >=*<<
(>=*<^) :: forall a b c d r' r'' m. Monad m => (a -> c -> m r'') -> (b -> r'' -> m r') -> (a, b) -> c -> d -> m r'
infixr 9 >=*<^
(>=*^*) :: forall a b c d e r' r'' m. Monad m => (a -> d -> m r'') -> (b -> e -> r'' -> m r') -> (a, b) -> c -> (d, e) -> m r'
infixr 9 >=*^*
(>=*^&) :: forall a b c d r' r'' m. Monad m => (a -> d -> m r'') -> (b -> d -> r'' -> m r') -> (a, b) -> c -> d -> m r'
infixr 9 >=*^&
(>=*^>) :: forall a b c d r' r'' m. Monad m => (a -> m r'') -> (b -> d -> r'' -> m r') -> (a, b) -> c -> d -> m r'
infixr 9 >=*^>
(>=*^<) :: forall a b c d r' r'' m. Monad m => (a -> d -> m r'') -> (b -> r'' -> m r') -> (a, b) -> c -> d -> m r'
infixr 9 >=*^<
(>=*^^) :: forall a b c d r' r'' m. Monad m => (a -> m r'') -> (b -> r'' -> m r') -> (a, b) -> c -> d -> m r'
infixr 9 >=*^^
(>=&**) :: forall a b c d e r' r'' m. Monad m => (a -> b -> d -> m r'') -> (a -> c -> e -> r'' -> m r') -> a -> (b, c) -> (d, e) -> m r'
infixr 9 >=&**
(>=&*&) :: forall a b c d r' r'' m. Monad m => (a -> b -> d -> m r'') -> (a -> c -> d -> r'' -> m r') -> a -> (b, c) -> d -> m r'
infixr 9 >=&*&
(>=&*>) :: forall a b c d r' r'' m. Monad m => (a -> b -> m r'') -> (a -> c -> d -> r'' -> m r') -> a -> (b, c) -> d -> m r'
infixr 9 >=&*>
(>=&*<) :: forall a b c d r' r'' m. Monad m => (a -> b -> d -> m r'') -> (a -> c -> r'' -> m r') -> a -> (b, c) -> d -> m r'
infixr 9 >=&*<
(>=&*^) :: forall a b c d r' r'' m. Monad m => (a -> b -> m r'') -> (a -> c -> r'' -> m r') -> a -> (b, c) -> d -> m r'
infixr 9 >=&*^
(>=&&*) :: forall a b c d r' r'' m. Monad m => (a -> b -> c -> m r'') -> (a -> b -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
infixr 9 >=&&*
(>=&&&) :: forall a b c r' r'' m. Monad m => (a -> b -> c -> m r'') -> (a -> b -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=&&&
(>=&&>) :: forall a b c r' r'' m. Monad m => (a -> b -> m r'') -> (a -> b -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=&&>
(>=&&<) :: forall a b c r' r'' m. Monad m => (a -> b -> c -> m r'') -> (a -> b -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=&&<
(>=&&^) :: forall a b c r' r'' m. Monad m => (a -> b -> m r'') -> (a -> b -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=&&^
(>=&>*) :: forall a b c d r' r'' m. Monad m => (a -> c -> m r'') -> (a -> b -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
infixr 9 >=&>*
(>=&>&) :: forall a b c r' r'' m. Monad m => (a -> c -> m r'') -> (a -> b -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=&>&
(>=&>>) :: forall a b c r' r'' m. Monad m => (a -> m r'') -> (a -> b -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=&>>
(>=&><) :: forall a b c r' r'' m. Monad m => (a -> c -> m r'') -> (a -> b -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=&><
(>=&>^) :: forall a b c r' r'' m. Monad m => (a -> m r'') -> (a -> b -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=&>^
(>=&<*) :: forall a b c d r' r'' m. Monad m => (a -> b -> c -> m r'') -> (a -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
infixr 9 >=&<*
(>=&<&) :: forall a b c r' r'' m. Monad m => (a -> b -> c -> m r'') -> (a -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=&<&
(>=&<>) :: forall a b c r' r'' m. Monad m => (a -> b -> m r'') -> (a -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=&<>
(>=&<<) :: forall a b c r' r'' m. Monad m => (a -> b -> c -> m r'') -> (a -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=&<<
(>=&<^) :: forall a b c r' r'' m. Monad m => (a -> b -> m r'') -> (a -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=&<^
(>=&^*) :: forall a b c d r' r'' m. Monad m => (a -> c -> m r'') -> (a -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
infixr 9 >=&^*
(>=&^&) :: forall a b c r' r'' m. Monad m => (a -> c -> m r'') -> (a -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=&^&
(>=&^>) :: forall a b c r' r'' m. Monad m => (a -> m r'') -> (a -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=&^>
(>=&^<) :: forall a b c r' r'' m. Monad m => (a -> c -> m r'') -> (a -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=&^<
(>=&^^) :: forall a b c r' r'' m. Monad m => (a -> m r'') -> (a -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=&^^
(>=>**) :: forall a b c d e r' r'' m. Monad m => (b -> d -> m r'') -> (a -> c -> e -> r'' -> m r') -> a -> (b, c) -> (d, e) -> m r'
infixr 9 >=>**
(>=>*&) :: forall a b c d r' r'' m. Monad m => (b -> d -> m r'') -> (a -> c -> d -> r'' -> m r') -> a -> (b, c) -> d -> m r'
infixr 9 >=>*&
(>=>*>) :: forall a b c d r' r'' m. Monad m => (b -> m r'') -> (a -> c -> d -> r'' -> m r') -> a -> (b, c) -> d -> m r'
infixr 9 >=>*>
(>=>*<) :: forall a b c d r' r'' m. Monad m => (b -> d -> m r'') -> (a -> c -> r'' -> m r') -> a -> (b, c) -> d -> m r'
infixr 9 >=>*<
(>=>*^) :: forall a b c d r' r'' m. Monad m => (b -> m r'') -> (a -> c -> r'' -> m r') -> a -> (b, c) -> d -> m r'
infixr 9 >=>*^
(>=>&*) :: forall a b c d r' r'' m. Monad m => (b -> c -> m r'') -> (a -> b -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
infixr 9 >=>&*
(>=>&&) :: forall a b c r' r'' m. Monad m => (b -> c -> m r'') -> (a -> b -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=>&&
(>=>&>) :: forall a b c r' r'' m. Monad m => (b -> m r'') -> (a -> b -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=>&>
(>=>&<) :: forall a b c r' r'' m. Monad m => (b -> c -> m r'') -> (a -> b -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=>&<
(>=>&^) :: forall a b c r' r'' m. Monad m => (b -> m r'') -> (a -> b -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=>&^
(>=>>*) :: forall a b c d r' r'' m. Monad m => (c -> m r'') -> (a -> b -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
infixr 9 >=>>*
(>=>>&) :: forall a b c r' r'' m. Monad m => (c -> m r'') -> (a -> b -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=>>&
(>=>>>) :: forall a b c r' r'' m. Monad m => m r'' -> (a -> b -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=>>>
(>=>><) :: forall a b c r' r'' m. Monad m => (c -> m r'') -> (a -> b -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=>><
(>=>>^) :: forall a b c r' r'' m. Monad m => m r'' -> (a -> b -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=>>^
(>=><*) :: forall a b c d r' r'' m. Monad m => (b -> c -> m r'') -> (a -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
infixr 9 >=><*
(>=><&) :: forall a b c r' r'' m. Monad m => (b -> c -> m r'') -> (a -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=><&
(>=><>) :: forall a b c r' r'' m. Monad m => (b -> m r'') -> (a -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=><>
(>=><<) :: forall a b c r' r'' m. Monad m => (b -> c -> m r'') -> (a -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=><<
(>=><^) :: forall a b c r' r'' m. Monad m => (b -> m r'') -> (a -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=><^
(>=>^*) :: forall a b c d r' r'' m. Monad m => (c -> m r'') -> (a -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
infixr 9 >=>^*
(>=>^&) :: forall a b c r' r'' m. Monad m => (c -> m r'') -> (a -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=>^&
(>=>^>) :: forall a b c r' r'' m. Monad m => m r'' -> (a -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=>^>
(>=>^<) :: forall a b c r' r'' m. Monad m => (c -> m r'') -> (a -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=>^<
(>=>^^) :: forall a b c r' r'' m. Monad m => m r'' -> (a -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=>^^
(>=<**) :: forall a b c d e r' r'' m. Monad m => (a -> b -> d -> m r'') -> (c -> e -> r'' -> m r') -> a -> (b, c) -> (d, e) -> m r'
infixr 9 >=<**
(>=<*&) :: forall a b c d r' r'' m. Monad m => (a -> b -> d -> m r'') -> (c -> d -> r'' -> m r') -> a -> (b, c) -> d -> m r'
infixr 9 >=<*&
(>=<*>) :: forall a b c d r' r'' m. Monad m => (a -> b -> m r'') -> (c -> d -> r'' -> m r') -> a -> (b, c) -> d -> m r'
infixr 9 >=<*>
(>=<*<) :: forall a b c d r' r'' m. Monad m => (a -> b -> d -> m r'') -> (c -> r'' -> m r') -> a -> (b, c) -> d -> m r'
infixr 9 >=<*<
(>=<*^) :: forall a b c d r' r'' m. Monad m => (a -> b -> m r'') -> (c -> r'' -> m r') -> a -> (b, c) -> d -> m r'
infixr 9 >=<*^
(>=<&*) :: forall a b c d r' r'' m. Monad m => (a -> b -> c -> m r'') -> (b -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
infixr 9 >=<&*
(>=<&&) :: forall a b c r' r'' m. Monad m => (a -> b -> c -> m r'') -> (b -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=<&&
(>=<&>) :: forall a b c r' r'' m. Monad m => (a -> b -> m r'') -> (b -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=<&>
(>=<&<) :: forall a b c r' r'' m. Monad m => (a -> b -> c -> m r'') -> (b -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=<&<
(>=<&^) :: forall a b c r' r'' m. Monad m => (a -> b -> m r'') -> (b -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=<&^
(>=<>*) :: forall a b c d r' r'' m. Monad m => (a -> c -> m r'') -> (b -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
infixr 9 >=<>*
(>=<>&) :: forall a b c r' r'' m. Monad m => (a -> c -> m r'') -> (b -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=<>&
(>=<>>) :: forall a b c r' r'' m. Monad m => (a -> m r'') -> (b -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=<>>
(>=<><) :: forall a b c r' r'' m. Monad m => (a -> c -> m r'') -> (b -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=<><
(>=<>^) :: forall a b c r' r'' m. Monad m => (a -> m r'') -> (b -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=<>^
(>=<<*) :: forall a b c d r' r'' m. Monad m => (a -> b -> c -> m r'') -> (d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
infixr 9 >=<<*
(>=<<&) :: forall a b c r' r'' m. Monad m => (a -> b -> c -> m r'') -> (c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=<<&
(>=<<>) :: forall a b c r' r'' m. Monad m => (a -> b -> m r'') -> (c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=<<>
(>=<<<) :: forall a b c r' r'' m. Monad m => (a -> b -> c -> m r'') -> (r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=<<<
(>=<<^) :: forall a b c r' r'' m. Monad m => (a -> b -> m r'') -> (r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=<<^
(>=<^*) :: forall a b c d r' r'' m. Monad m => (a -> c -> m r'') -> (d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
infixr 9 >=<^*
(>=<^&) :: forall a b c r' r'' m. Monad m => (a -> c -> m r'') -> (c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=<^&
(>=<^>) :: forall a b c r' r'' m. Monad m => (a -> m r'') -> (c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=<^>
(>=<^<) :: forall a b c r' r'' m. Monad m => (a -> c -> m r'') -> (r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=<^<
(>=<^^) :: forall a b c r' r'' m. Monad m => (a -> m r'') -> (r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=<^^
(>=^**) :: forall a b c d e r' r'' m. Monad m => (b -> d -> m r'') -> (c -> e -> r'' -> m r') -> a -> (b, c) -> (d, e) -> m r'
infixr 9 >=^**
(>=^*&) :: forall a b c d r' r'' m. Monad m => (b -> d -> m r'') -> (c -> d -> r'' -> m r') -> a -> (b, c) -> d -> m r'
infixr 9 >=^*&
(>=^*>) :: forall a b c d r' r'' m. Monad m => (b -> m r'') -> (c -> d -> r'' -> m r') -> a -> (b, c) -> d -> m r'
infixr 9 >=^*>
(>=^*<) :: forall a b c d r' r'' m. Monad m => (b -> d -> m r'') -> (c -> r'' -> m r') -> a -> (b, c) -> d -> m r'
infixr 9 >=^*<
(>=^*^) :: forall a b c d r' r'' m. Monad m => (b -> m r'') -> (c -> r'' -> m r') -> a -> (b, c) -> d -> m r'
infixr 9 >=^*^
(>=^&*) :: forall a b c d r' r'' m. Monad m => (b -> c -> m r'') -> (b -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
infixr 9 >=^&*
(>=^&&) :: forall a b c r' r'' m. Monad m => (b -> c -> m r'') -> (b -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=^&&
(>=^&>) :: forall a b c r' r'' m. Monad m => (b -> m r'') -> (b -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=^&>
(>=^&<) :: forall a b c r' r'' m. Monad m => (b -> c -> m r'') -> (b -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=^&<
(>=^&^) :: forall a b c r' r'' m. Monad m => (b -> m r'') -> (b -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=^&^
(>=^>*) :: forall a b c d r' r'' m. Monad m => (c -> m r'') -> (b -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
infixr 9 >=^>*
(>=^>&) :: forall a b c r' r'' m. Monad m => (c -> m r'') -> (b -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=^>&
(>=^>>) :: forall a b c r' r'' m. Monad m => m r'' -> (b -> c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=^>>
(>=^><) :: forall a b c r' r'' m. Monad m => (c -> m r'') -> (b -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=^><
(>=^>^) :: forall a b c r' r'' m. Monad m => m r'' -> (b -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=^>^
(>=^<*) :: forall a b c d r' r'' m. Monad m => (b -> c -> m r'') -> (d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
infixr 9 >=^<*
(>=^<&) :: forall a b c r' r'' m. Monad m => (b -> c -> m r'') -> (c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=^<&
(>=^<>) :: forall a b c r' r'' m. Monad m => (b -> m r'') -> (c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=^<>
(>=^<<) :: forall a b c r' r'' m. Monad m => (b -> c -> m r'') -> (r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=^<<
(>=^<^) :: forall a b c r' r'' m. Monad m => (b -> m r'') -> (r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=^<^
(>=^^*) :: forall a b c d r' r'' m. Monad m => (c -> m r'') -> (d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
infixr 9 >=^^*
(>=^^&) :: forall a b c r' r'' m. Monad m => (c -> m r'') -> (c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=^^&
(>=^^>) :: forall a b c r' r'' m. Monad m => m r'' -> (c -> r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=^^>
(>=^^<) :: forall a b c r' r'' m. Monad m => (c -> m r'') -> (r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=^^<
(>=^^^) :: forall a b c r' r'' m. Monad m => m r'' -> (r'' -> m r') -> a -> b -> c -> m r'
infixr 9 >=^^^
(>=**) :: forall a b c d r' r'' m. Monad m => (a -> c -> m r'') -> (b -> d -> r'' -> m r') -> (a, b) -> (c, d) -> m r'
infixr 9 >=**
(>=*&) :: forall a b c r' r'' m. Monad m => (a -> c -> m r'') -> (b -> c -> r'' -> m r') -> (a, b) -> c -> m r'
infixr 9 >=*&
(>=*>) :: forall a b c r' r'' m. Monad m => (a -> m r'') -> (b -> c -> r'' -> m r') -> (a, b) -> c -> m r'
infixr 9 >=*>
(>=*<) :: forall a b c r' r'' m. Monad m => (a -> c -> m r'') -> (b -> r'' -> m r') -> (a, b) -> c -> m r'
infixr 9 >=*<
(>=*^) :: forall a b c r' r'' m. Monad m => (a -> m r'') -> (b -> r'' -> m r') -> (a, b) -> c -> m r'
infixr 9 >=*^
(>=&*) :: forall a b c r' r'' m. Monad m => (a -> b -> m r'') -> (a -> c -> r'' -> m r') -> a -> (b, c) -> m r'
infixr 9 >=&*
(>=&&) :: forall a b r' r'' m. Monad m => (a -> b -> m r'') -> (a -> b -> r'' -> m r') -> a -> b -> m r'
infixr 9 >=&&
(>=&>) :: forall a b r' r'' m. Monad m => (a -> m r'') -> (a -> b -> r'' -> m r') -> a -> b -> m r'
infixr 9 >=&>
(>=&<) :: forall a b r' r'' m. Monad m => (a -> b -> m r'') -> (a -> r'' -> m r') -> a -> b -> m r'
infixr 9 >=&<
(>=&^) :: forall a b r' r'' m. Monad m => (a -> m r'') -> (a -> r'' -> m r') -> a -> b -> m r'
infixr 9 >=&^
(>=>*) :: forall a b c r' r'' m. Monad m => (b -> m r'') -> (a -> c -> r'' -> m r') -> a -> (b, c) -> m r'
infixr 9 >=>*
(>=>&) :: forall a b r' r'' m. Monad m => (b -> m r'') -> (a -> b -> r'' -> m r') -> a -> b -> m r'
infixr 9 >=>&
(>=>>) :: forall a b r' r'' m. Monad m => m r'' -> (a -> b -> r'' -> m r') -> a -> b -> m r'
infixr 9 >=>>
(>=><) :: forall a b r' r'' m. Monad m => (b -> m r'') -> (a -> r'' -> m r') -> a -> b -> m r'
infixr 9 >=><
(>=>^) :: forall a b r' r'' m. Monad m => m r'' -> (a -> r'' -> m r') -> a -> b -> m r'
infixr 9 >=>^
(>=<*) :: forall a b c r' r'' m. Monad m => (a -> b -> m r'') -> (c -> r'' -> m r') -> a -> (b, c) -> m r'
infixr 9 >=<*
(>=<&) :: forall a b r' r'' m. Monad m => (a -> b -> m r'') -> (b -> r'' -> m r') -> a -> b -> m r'
infixr 9 >=<&
(>=<>) :: forall a b r' r'' m. Monad m => (a -> m r'') -> (b -> r'' -> m r') -> a -> b -> m r'
infixr 9 >=<>
(>=<<) :: forall a b r' r'' m. Monad m => (a -> b -> m r'') -> (r'' -> m r') -> a -> b -> m r'
infixr 9 >=<<
(>=<^) :: forall a b r' r'' m. Monad m => (a -> m r'') -> (r'' -> m r') -> a -> b -> m r'
infixr 9 >=<^
(>=^*) :: forall a b c r' r'' m. Monad m => (b -> m r'') -> (c -> r'' -> m r') -> a -> (b, c) -> m r'
infixr 9 >=^*
(>=^&) :: forall a b r' r'' m. Monad m => (b -> m r'') -> (b -> r'' -> m r') -> a -> b -> m r'
infixr 9 >=^&
(>=^>) :: forall a b r' r'' m. Monad m => m r'' -> (b -> r'' -> m r') -> a -> b -> m r'
infixr 9 >=^>
(>=^<) :: forall a b r' r'' m. Monad m => (b -> m r'') -> (r'' -> m r') -> a -> b -> m r'
infixr 9 >=^<
(>=^^) :: forall a b r' r'' m. Monad m => m r'' -> (r'' -> m r') -> a -> b -> m r'
infixr 9 >=^^
(>=*) :: forall a b r' r'' m. Monad m => (a -> m r'') -> (b -> r'' -> m r') -> (a, b) -> m r'
infixr 9 >=*
(>=&) :: forall a r' r'' m. Monad m => (a -> m r'') -> (a -> r'' -> m r') -> a -> m r'
infixr 9 >=&
(>=>) :: forall a r' r'' m. Monad m => m r'' -> (a -> r'' -> m r') -> a -> m r'
infixr 9 >=>
(>=<) :: forall a r' r'' m. Monad m => (a -> m r'') -> (r'' -> m r') -> a -> m r'
infixr 9 >=<
(>=^) :: forall a r' r'' m. Monad m => m r'' -> (r'' -> m r') -> a -> m r'
infixr 9 >=^
(<=***) :: forall a b c d e f r' r'' m. Monad m => (a -> c -> e -> r'' -> m r') -> (b -> d -> f -> m r'') -> (a, b) -> (c, d) -> (e, f) -> m r'
infixr 9 <=***
(<=**&) :: forall a b c d e r' r'' m. Monad m => (a -> c -> e -> r'' -> m r') -> (b -> d -> e -> m r'') -> (a, b) -> (c, d) -> e -> m r'
infixr 9 <=**&
(<=**>) :: forall a b c d e r' r'' m. Monad m => (a -> c -> r'' -> m r') -> (b -> d -> e -> m r'') -> (a, b) -> (c, d) -> e -> m r'
infixr 9 <=**>
(<=**<) :: forall a b c d e r' r'' m. Monad m => (a -> c -> e -> r'' -> m r') -> (b -> d -> m r'') -> (a, b) -> (c, d) -> e -> m r'
infixr 9 <=**<
(<=**^) :: forall a b c d e r' r'' m. Monad m => (a -> c -> r'' -> m r') -> (b -> d -> m r'') -> (a, b) -> (c, d) -> e -> m r'
infixr 9 <=**^
(<=*&*) :: forall a b c d e r' r'' m. Monad m => (a -> c -> d -> r'' -> m r') -> (b -> c -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r'
infixr 9 <=*&*
(<=*&&) :: forall a b c d r' r'' m. Monad m => (a -> c -> d -> r'' -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <=*&&
(<=*&>) :: forall a b c d r' r'' m. Monad m => (a -> c -> r'' -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <=*&>
(<=*&<) :: forall a b c d r' r'' m. Monad m => (a -> c -> d -> r'' -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <=*&<
(<=*&^) :: forall a b c d r' r'' m. Monad m => (a -> c -> r'' -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <=*&^
(<=*>*) :: forall a b c d e r' r'' m. Monad m => (a -> d -> r'' -> m r') -> (b -> c -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r'
infixr 9 <=*>*
(<=*>&) :: forall a b c d r' r'' m. Monad m => (a -> d -> r'' -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <=*>&
(<=*>>) :: forall a b c d r' r'' m. Monad m => (a -> r'' -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <=*>>
(<=*><) :: forall a b c d r' r'' m. Monad m => (a -> d -> r'' -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <=*><
(<=*>^) :: forall a b c d r' r'' m. Monad m => (a -> r'' -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <=*>^
(<=*<*) :: forall a b c d e r' r'' m. Monad m => (a -> c -> d -> r'' -> m r') -> (b -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r'
infixr 9 <=*<*
(<=*<&) :: forall a b c d r' r'' m. Monad m => (a -> c -> d -> r'' -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <=*<&
(<=*<>) :: forall a b c d r' r'' m. Monad m => (a -> c -> r'' -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <=*<>
(<=*<<) :: forall a b c d r' r'' m. Monad m => (a -> c -> d -> r'' -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <=*<<
(<=*<^) :: forall a b c d r' r'' m. Monad m => (a -> c -> r'' -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <=*<^
(<=*^*) :: forall a b c d e r' r'' m. Monad m => (a -> d -> r'' -> m r') -> (b -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r'
infixr 9 <=*^*
(<=*^&) :: forall a b c d r' r'' m. Monad m => (a -> d -> r'' -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <=*^&
(<=*^>) :: forall a b c d r' r'' m. Monad m => (a -> r'' -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <=*^>
(<=*^<) :: forall a b c d r' r'' m. Monad m => (a -> d -> r'' -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <=*^<
(<=*^^) :: forall a b c d r' r'' m. Monad m => (a -> r'' -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <=*^^
(<=&**) :: forall a b c d e r' r'' m. Monad m => (a -> b -> d -> r'' -> m r') -> (a -> c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r'
infixr 9 <=&**
(<=&*&) :: forall a b c d r' r'' m. Monad m => (a -> b -> d -> r'' -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <=&*&
(<=&*>) :: forall a b c d r' r'' m. Monad m => (a -> b -> r'' -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <=&*>
(<=&*<) :: forall a b c d r' r'' m. Monad m => (a -> b -> d -> r'' -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <=&*<
(<=&*^) :: forall a b c d r' r'' m. Monad m => (a -> b -> r'' -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <=&*^
(<=&&*) :: forall a b c d r' r'' m. Monad m => (a -> b -> c -> r'' -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <=&&*
(<=&&&) :: forall a b c r' r'' m. Monad m => (a -> b -> c -> r'' -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=&&&
(<=&&>) :: forall a b c r' r'' m. Monad m => (a -> b -> r'' -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=&&>
(<=&&<) :: forall a b c r' r'' m. Monad m => (a -> b -> c -> r'' -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
infixr 9 <=&&<
(<=&&^) :: forall a b c r' r'' m. Monad m => (a -> b -> r'' -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
infixr 9 <=&&^
(<=&>*) :: forall a b c d r' r'' m. Monad m => (a -> c -> r'' -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <=&>*
(<=&>&) :: forall a b c r' r'' m. Monad m => (a -> c -> r'' -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=&>&
(<=&>>) :: forall a b c r' r'' m. Monad m => (a -> r'' -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=&>>
(<=&><) :: forall a b c r' r'' m. Monad m => (a -> c -> r'' -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
infixr 9 <=&><
(<=&>^) :: forall a b c r' r'' m. Monad m => (a -> r'' -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
infixr 9 <=&>^
(<=&<*) :: forall a b c d r' r'' m. Monad m => (a -> b -> c -> r'' -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <=&<*
(<=&<&) :: forall a b c r' r'' m. Monad m => (a -> b -> c -> r'' -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=&<&
(<=&<>) :: forall a b c r' r'' m. Monad m => (a -> b -> r'' -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=&<>
(<=&<<) :: forall a b c r' r'' m. Monad m => (a -> b -> c -> r'' -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
infixr 9 <=&<<
(<=&<^) :: forall a b c r' r'' m. Monad m => (a -> b -> r'' -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
infixr 9 <=&<^
(<=&^*) :: forall a b c d r' r'' m. Monad m => (a -> c -> r'' -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <=&^*
(<=&^&) :: forall a b c r' r'' m. Monad m => (a -> c -> r'' -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=&^&
(<=&^>) :: forall a b c r' r'' m. Monad m => (a -> r'' -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=&^>
(<=&^<) :: forall a b c r' r'' m. Monad m => (a -> c -> r'' -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
infixr 9 <=&^<
(<=&^^) :: forall a b c r' r'' m. Monad m => (a -> r'' -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
infixr 9 <=&^^
(<=>**) :: forall a b c d e r' r'' m. Monad m => (b -> d -> r'' -> m r') -> (a -> c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r'
infixr 9 <=>**
(<=>*&) :: forall a b c d r' r'' m. Monad m => (b -> d -> r'' -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <=>*&
(<=>*>) :: forall a b c d r' r'' m. Monad m => (b -> r'' -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <=>*>
(<=>*<) :: forall a b c d r' r'' m. Monad m => (b -> d -> r'' -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <=>*<
(<=>*^) :: forall a b c d r' r'' m. Monad m => (b -> r'' -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <=>*^
(<=>&*) :: forall a b c d r' r'' m. Monad m => (b -> c -> r'' -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <=>&*
(<=>&&) :: forall a b c r' r'' m. Monad m => (b -> c -> r'' -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=>&&
(<=>&>) :: forall a b c r' r'' m. Monad m => (b -> r'' -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=>&>
(<=>&<) :: forall a b c r' r'' m. Monad m => (b -> c -> r'' -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
infixr 9 <=>&<
(<=>&^) :: forall a b c r' r'' m. Monad m => (b -> r'' -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
infixr 9 <=>&^
(<=>>*) :: forall a b c d r' r'' m. Monad m => (c -> r'' -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <=>>*
(<=>>&) :: forall a b c r' r'' m. Monad m => (c -> r'' -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=>>&
(<=>>>) :: forall a b c r' r'' m. Monad m => (r'' -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=>>>
(<=>><) :: forall a b c r' r'' m. Monad m => (c -> r'' -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
infixr 9 <=>><
(<=>>^) :: forall a b c r' r'' m. Monad m => (r'' -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
infixr 9 <=>>^
(<=><*) :: forall a b c d r' r'' m. Monad m => (b -> c -> r'' -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <=><*
(<=><&) :: forall a b c r' r'' m. Monad m => (b -> c -> r'' -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=><&
(<=><>) :: forall a b c r' r'' m. Monad m => (b -> r'' -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=><>
(<=><<) :: forall a b c r' r'' m. Monad m => (b -> c -> r'' -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
infixr 9 <=><<
(<=><^) :: forall a b c r' r'' m. Monad m => (b -> r'' -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
infixr 9 <=><^
(<=>^*) :: forall a b c d r' r'' m. Monad m => (c -> r'' -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <=>^*
(<=>^&) :: forall a b c r' r'' m. Monad m => (c -> r'' -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=>^&
(<=>^>) :: forall a b c r' r'' m. Monad m => (r'' -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=>^>
(<=>^<) :: forall a b c r' r'' m. Monad m => (c -> r'' -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
infixr 9 <=>^<
(<=>^^) :: forall a b c r' r'' m. Monad m => (r'' -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
infixr 9 <=>^^
(<=<**) :: forall a b c d e r' r'' m. Monad m => (a -> b -> d -> r'' -> m r') -> (c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r'
infixr 9 <=<**
(<=<*&) :: forall a b c d r' r'' m. Monad m => (a -> b -> d -> r'' -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <=<*&
(<=<*>) :: forall a b c d r' r'' m. Monad m => (a -> b -> r'' -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <=<*>
(<=<*<) :: forall a b c d r' r'' m. Monad m => (a -> b -> d -> r'' -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <=<*<
(<=<*^) :: forall a b c d r' r'' m. Monad m => (a -> b -> r'' -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <=<*^
(<=<&*) :: forall a b c d r' r'' m. Monad m => (a -> b -> c -> r'' -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <=<&*
(<=<&&) :: forall a b c r' r'' m. Monad m => (a -> b -> c -> r'' -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=<&&
(<=<&>) :: forall a b c r' r'' m. Monad m => (a -> b -> r'' -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=<&>
(<=<&<) :: forall a b c r' r'' m. Monad m => (a -> b -> c -> r'' -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
infixr 9 <=<&<
(<=<&^) :: forall a b c r' r'' m. Monad m => (a -> b -> r'' -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
infixr 9 <=<&^
(<=<>*) :: forall a b c d r' r'' m. Monad m => (a -> c -> r'' -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <=<>*
(<=<>&) :: forall a b c r' r'' m. Monad m => (a -> c -> r'' -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=<>&
(<=<>>) :: forall a b c r' r'' m. Monad m => (a -> r'' -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=<>>
(<=<><) :: forall a b c r' r'' m. Monad m => (a -> c -> r'' -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
infixr 9 <=<><
(<=<>^) :: forall a b c r' r'' m. Monad m => (a -> r'' -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
infixr 9 <=<>^
(<=<<*) :: forall a b c d r' r'' m. Monad m => (a -> b -> c -> r'' -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <=<<*
(<=<<&) :: forall a b c r' r'' m. Monad m => (a -> b -> c -> r'' -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=<<&
(<=<<>) :: forall a b c r' r'' m. Monad m => (a -> b -> r'' -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=<<>
(<=<<<) :: forall a b c r' r'' m. Monad m => (a -> b -> c -> r'' -> m r') -> m r'' -> a -> b -> c -> m r'
infixr 9 <=<<<
(<=<<^) :: forall a b c r' r'' m. Monad m => (a -> b -> r'' -> m r') -> m r'' -> a -> b -> c -> m r'
infixr 9 <=<<^
(<=<^*) :: forall a b c d r' r'' m. Monad m => (a -> c -> r'' -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <=<^*
(<=<^&) :: forall a b c r' r'' m. Monad m => (a -> c -> r'' -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=<^&
(<=<^>) :: forall a b c r' r'' m. Monad m => (a -> r'' -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=<^>
(<=<^<) :: forall a b c r' r'' m. Monad m => (a -> c -> r'' -> m r') -> m r'' -> a -> b -> c -> m r'
infixr 9 <=<^<
(<=<^^) :: forall a b c r' r'' m. Monad m => (a -> r'' -> m r') -> m r'' -> a -> b -> c -> m r'
infixr 9 <=<^^
(<=^**) :: forall a b c d e r' r'' m. Monad m => (b -> d -> r'' -> m r') -> (c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r'
infixr 9 <=^**
(<=^*&) :: forall a b c d r' r'' m. Monad m => (b -> d -> r'' -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <=^*&
(<=^*>) :: forall a b c d r' r'' m. Monad m => (b -> r'' -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <=^*>
(<=^*<) :: forall a b c d r' r'' m. Monad m => (b -> d -> r'' -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <=^*<
(<=^*^) :: forall a b c d r' r'' m. Monad m => (b -> r'' -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <=^*^
(<=^&*) :: forall a b c d r' r'' m. Monad m => (b -> c -> r'' -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <=^&*
(<=^&&) :: forall a b c r' r'' m. Monad m => (b -> c -> r'' -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=^&&
(<=^&>) :: forall a b c r' r'' m. Monad m => (b -> r'' -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=^&>
(<=^&<) :: forall a b c r' r'' m. Monad m => (b -> c -> r'' -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
infixr 9 <=^&<
(<=^&^) :: forall a b c r' r'' m. Monad m => (b -> r'' -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
infixr 9 <=^&^
(<=^>*) :: forall a b c d r' r'' m. Monad m => (c -> r'' -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <=^>*
(<=^>&) :: forall a b c r' r'' m. Monad m => (c -> r'' -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=^>&
(<=^>>) :: forall a b c r' r'' m. Monad m => (r'' -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=^>>
(<=^><) :: forall a b c r' r'' m. Monad m => (c -> r'' -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
infixr 9 <=^><
(<=^>^) :: forall a b c r' r'' m. Monad m => (r'' -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
infixr 9 <=^>^
(<=^<*) :: forall a b c d r' r'' m. Monad m => (b -> c -> r'' -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <=^<*
(<=^<&) :: forall a b c r' r'' m. Monad m => (b -> c -> r'' -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=^<&
(<=^<>) :: forall a b c r' r'' m. Monad m => (b -> r'' -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=^<>
(<=^<<) :: forall a b c r' r'' m. Monad m => (b -> c -> r'' -> m r') -> m r'' -> a -> b -> c -> m r'
infixr 9 <=^<<
(<=^<^) :: forall a b c r' r'' m. Monad m => (b -> r'' -> m r') -> m r'' -> a -> b -> c -> m r'
infixr 9 <=^<^
(<=^^*) :: forall a b c d r' r'' m. Monad m => (c -> r'' -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <=^^*
(<=^^&) :: forall a b c r' r'' m. Monad m => (c -> r'' -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=^^&
(<=^^>) :: forall a b c r' r'' m. Monad m => (r'' -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
infixr 9 <=^^>
(<=^^<) :: forall a b c r' r'' m. Monad m => (c -> r'' -> m r') -> m r'' -> a -> b -> c -> m r'
infixr 9 <=^^<
(<=^^^) :: forall a b c r' r'' m. Monad m => (r'' -> m r') -> m r'' -> a -> b -> c -> m r'
infixr 9 <=^^^
(<=**) :: forall a b c d r' r'' m. Monad m => (a -> c -> r'' -> m r') -> (b -> d -> m r'') -> (a, b) -> (c, d) -> m r'
infixr 9 <=**
(<=*&) :: forall a b c r' r'' m. Monad m => (a -> c -> r'' -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> m r'
infixr 9 <=*&
(<=*>) :: forall a b c r' r'' m. Monad m => (a -> r'' -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> m r'
infixr 9 <=*>
(<=*<) :: forall a b c r' r'' m. Monad m => (a -> c -> r'' -> m r') -> (b -> m r'') -> (a, b) -> c -> m r'
infixr 9 <=*<
(<=*^) :: forall a b c r' r'' m. Monad m => (a -> r'' -> m r') -> (b -> m r'') -> (a, b) -> c -> m r'
infixr 9 <=*^
(<=&*) :: forall a b c r' r'' m. Monad m => (a -> b -> r'' -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> m r'
infixr 9 <=&*
(<=&&) :: forall a b r' r'' m. Monad m => (a -> b -> r'' -> m r') -> (a -> b -> m r'') -> a -> b -> m r'
infixr 9 <=&&
(<=&>) :: forall a b r' r'' m. Monad m => (a -> r'' -> m r') -> (a -> b -> m r'') -> a -> b -> m r'
infixr 9 <=&>
(<=&<) :: forall a b r' r'' m. Monad m => (a -> b -> r'' -> m r') -> (a -> m r'') -> a -> b -> m r'
infixr 9 <=&<
(<=&^) :: forall a b r' r'' m. Monad m => (a -> r'' -> m r') -> (a -> m r'') -> a -> b -> m r'
infixr 9 <=&^
(<=>*) :: forall a b c r' r'' m. Monad m => (b -> r'' -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> m r'
infixr 9 <=>*
(<=>&) :: forall a b r' r'' m. Monad m => (b -> r'' -> m r') -> (a -> b -> m r'') -> a -> b -> m r'
infixr 9 <=>&
(<=>>) :: forall a b r' r'' m. Monad m => (r'' -> m r') -> (a -> b -> m r'') -> a -> b -> m r'
infixr 9 <=>>
(<=><) :: forall a b r' r'' m. Monad m => (b -> r'' -> m r') -> (a -> m r'') -> a -> b -> m r'
infixr 9 <=><
(<=>^) :: forall a b r' r'' m. Monad m => (r'' -> m r') -> (a -> m r'') -> a -> b -> m r'
infixr 9 <=>^
(<=<*) :: forall a b c r' r'' m. Monad m => (a -> b -> r'' -> m r') -> (c -> m r'') -> a -> (b, c) -> m r'
infixr 9 <=<*
(<=<&) :: forall a b r' r'' m. Monad m => (a -> b -> r'' -> m r') -> (b -> m r'') -> a -> b -> m r'
infixr 9 <=<&
(<=<>) :: forall a b r' r'' m. Monad m => (a -> r'' -> m r') -> (b -> m r'') -> a -> b -> m r'
infixr 9 <=<>
(<=<<) :: forall a b r' r'' m. Monad m => (a -> b -> r'' -> m r') -> m r'' -> a -> b -> m r'
infixr 9 <=<<
(<=<^) :: forall a b r' r'' m. Monad m => (a -> r'' -> m r') -> m r'' -> a -> b -> m r'
infixr 9 <=<^
(<=^*) :: forall a b c r' r'' m. Monad m => (b -> r'' -> m r') -> (c -> m r'') -> a -> (b, c) -> m r'
infixr 9 <=^*
(<=^&) :: forall a b r' r'' m. Monad m => (b -> r'' -> m r') -> (b -> m r'') -> a -> b -> m r'
infixr 9 <=^&
(<=^>) :: forall a b r' r'' m. Monad m => (r'' -> m r') -> (b -> m r'') -> a -> b -> m r'
infixr 9 <=^>
(<=^<) :: forall a b r' r'' m. Monad m => (b -> r'' -> m r') -> m r'' -> a -> b -> m r'
infixr 9 <=^<
(<=^^) :: forall a b r' r'' m. Monad m => (r'' -> m r') -> m r'' -> a -> b -> m r'
infixr 9 <=^^
(<=*) :: forall a b r' r'' m. Monad m => (a -> r'' -> m r') -> (b -> m r'') -> (a, b) -> m r'
infixr 9 <=*
(<=&) :: forall a r' r'' m. Monad m => (a -> r'' -> m r') -> (a -> m r'') -> a -> m r'
infixr 9 <=&
(<=>) :: forall a r' r'' m. Monad m => (r'' -> m r') -> (a -> m r'') -> a -> m r'
infixr 9 <=>
(<=<) :: forall a r' r'' m. Monad m => (a -> r'' -> m r') -> m r'' -> a -> m r'
infixr 9 <=<
(<=^) :: forall a r' r'' m. Monad m => (r'' -> m r') -> m r'' -> a -> m r'
infixr 9 <=^
(<<) :: Monad m => m b -> m a -> m b
(<<***) :: forall a b c d e f m r' r''. Monad m => (a -> c -> e -> m r') -> (b -> d -> f -> m r'') -> (a, b) -> (c, d) -> (e, f) -> m r'
infixr 9 <<***
(<<**&) :: forall a b c d e m r' r''. Monad m => (a -> c -> e -> m r') -> (b -> d -> e -> m r'') -> (a, b) -> (c, d) -> e -> m r'
infixr 9 <<**&
(<<**>) :: forall a b c d e m r' r''. Monad m => (a -> c -> m r') -> (b -> d -> e -> m r'') -> (a, b) -> (c, d) -> e -> m r'
infixr 9 <<**>
(<<**<) :: forall a b c d e m r' r''. Monad m => (a -> c -> e -> m r') -> (b -> d -> m r'') -> (a, b) -> (c, d) -> e -> m r'
infixr 9 <<**<
(<<**^) :: forall a b c d e m r' r''. Monad m => (a -> c -> m r') -> (b -> d -> m r'') -> (a, b) -> (c, d) -> e -> m r'
infixr 9 <<**^
(<<*&*) :: forall a b c d e m r' r''. Monad m => (a -> c -> d -> m r') -> (b -> c -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r'
infixr 9 <<*&*
(<<*&&) :: forall a b c d m r' r''. Monad m => (a -> c -> d -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <<*&&
(<<*&>) :: forall a b c d m r' r''. Monad m => (a -> c -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <<*&>
(<<*&<) :: forall a b c d m r' r''. Monad m => (a -> c -> d -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <<*&<
(<<*&^) :: forall a b c d m r' r''. Monad m => (a -> c -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <<*&^
(<<*>*) :: forall a b c d e m r' r''. Monad m => (a -> d -> m r') -> (b -> c -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r'
infixr 9 <<*>*
(<<*>&) :: forall a b c d m r' r''. Monad m => (a -> d -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <<*>&
(<<*>>) :: forall a b c d m r' r''. Monad m => (a -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <<*>>
(<<*><) :: forall a b c d m r' r''. Monad m => (a -> d -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <<*><
(<<*>^) :: forall a b c d m r' r''. Monad m => (a -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <<*>^
(<<*<*) :: forall a b c d e m r' r''. Monad m => (a -> c -> d -> m r') -> (b -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r'
infixr 9 <<*<*
(<<*<&) :: forall a b c d m r' r''. Monad m => (a -> c -> d -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <<*<&
(<<*<>) :: forall a b c d m r' r''. Monad m => (a -> c -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <<*<>
(<<*<<) :: forall a b c d m r' r''. Monad m => (a -> c -> d -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <<*<<
(<<*<^) :: forall a b c d m r' r''. Monad m => (a -> c -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <<*<^
(<<*^*) :: forall a b c d e m r' r''. Monad m => (a -> d -> m r') -> (b -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r'
infixr 9 <<*^*
(<<*^&) :: forall a b c d m r' r''. Monad m => (a -> d -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <<*^&
(<<*^>) :: forall a b c d m r' r''. Monad m => (a -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <<*^>
(<<*^<) :: forall a b c d m r' r''. Monad m => (a -> d -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <<*^<
(<<*^^) :: forall a b c d m r' r''. Monad m => (a -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r'
infixr 9 <<*^^
(<<&**) :: forall a b c d e m r' r''. Monad m => (a -> b -> d -> m r') -> (a -> c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r'
infixr 9 <<&**
(<<&*&) :: forall a b c d m r' r''. Monad m => (a -> b -> d -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <<&*&
(<<&*>) :: forall a b c d m r' r''. Monad m => (a -> b -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <<&*>
(<<&*<) :: forall a b c d m r' r''. Monad m => (a -> b -> d -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <<&*<
(<<&*^) :: forall a b c d m r' r''. Monad m => (a -> b -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <<&*^
(<<&&*) :: forall a b c d m r' r''. Monad m => (a -> b -> c -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <<&&*
(<<&&&) :: forall a b c m r' r''. Monad m => (a -> b -> c -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<&&&
(<<&&>) :: forall a b c m r' r''. Monad m => (a -> b -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<&&>
(<<&&<) :: forall a b c m r' r''. Monad m => (a -> b -> c -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
infixr 9 <<&&<
(<<&&^) :: forall a b c m r' r''. Monad m => (a -> b -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
infixr 9 <<&&^
(<<&>*) :: forall a b c d m r' r''. Monad m => (a -> c -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <<&>*
(<<&>&) :: forall a b c m r' r''. Monad m => (a -> c -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<&>&
(<<&>>) :: forall a b c m r' r''. Monad m => (a -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<&>>
(<<&><) :: forall a b c m r' r''. Monad m => (a -> c -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
infixr 9 <<&><
(<<&>^) :: forall a b c m r' r''. Monad m => (a -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
infixr 9 <<&>^
(<<&<*) :: forall a b c d m r' r''. Monad m => (a -> b -> c -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <<&<*
(<<&<&) :: forall a b c m r' r''. Monad m => (a -> b -> c -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<&<&
(<<&<>) :: forall a b c m r' r''. Monad m => (a -> b -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<&<>
(<<&<<) :: forall a b c m r' r''. Monad m => (a -> b -> c -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
infixr 9 <<&<<
(<<&<^) :: forall a b c m r' r''. Monad m => (a -> b -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
infixr 9 <<&<^
(<<&^*) :: forall a b c d m r' r''. Monad m => (a -> c -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <<&^*
(<<&^&) :: forall a b c m r' r''. Monad m => (a -> c -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<&^&
(<<&^>) :: forall a b c m r' r''. Monad m => (a -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<&^>
(<<&^<) :: forall a b c m r' r''. Monad m => (a -> c -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
infixr 9 <<&^<
(<<&^^) :: forall a b c m r' r''. Monad m => (a -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
infixr 9 <<&^^
(<<>**) :: forall a b c d e m r' r''. Monad m => (b -> d -> m r') -> (a -> c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r'
infixr 9 <<>**
(<<>*&) :: forall a b c d m r' r''. Monad m => (b -> d -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <<>*&
(<<>*>) :: forall a b c d m r' r''. Monad m => (b -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <<>*>
(<<>*<) :: forall a b c d m r' r''. Monad m => (b -> d -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <<>*<
(<<>*^) :: forall a b c d m r' r''. Monad m => (b -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <<>*^
(<<>&*) :: forall a b c d m r' r''. Monad m => (b -> c -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <<>&*
(<<>&&) :: forall a b c m r' r''. Monad m => (b -> c -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<>&&
(<<>&>) :: forall a b c m r' r''. Monad m => (b -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<>&>
(<<>&<) :: forall a b c m r' r''. Monad m => (b -> c -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
infixr 9 <<>&<
(<<>&^) :: forall a b c m r' r''. Monad m => (b -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
infixr 9 <<>&^
(<<>>*) :: forall a b c d m r' r''. Monad m => (c -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <<>>*
(<<>>&) :: forall a b c m r' r''. Monad m => (c -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<>>&
(<<>>>) :: forall a b c m r' r''. Monad m => m r' -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<>>>
(<<>><) :: forall a b c m r' r''. Monad m => (c -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
infixr 9 <<>><
(<<>>^) :: forall a b c m r' r''. Monad m => m r' -> (a -> b -> m r'') -> a -> b -> c -> m r'
infixr 9 <<>>^
(<<><*) :: forall a b c d m r' r''. Monad m => (b -> c -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <<><*
(<<><&) :: forall a b c m r' r''. Monad m => (b -> c -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<><&
(<<><>) :: forall a b c m r' r''. Monad m => (b -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<><>
(<<><<) :: forall a b c m r' r''. Monad m => (b -> c -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
infixr 9 <<><<
(<<><^) :: forall a b c m r' r''. Monad m => (b -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
infixr 9 <<><^
(<<>^*) :: forall a b c d m r' r''. Monad m => (c -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <<>^*
(<<>^&) :: forall a b c m r' r''. Monad m => (c -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<>^&
(<<>^>) :: forall a b c m r' r''. Monad m => m r' -> (a -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<>^>
(<<>^<) :: forall a b c m r' r''. Monad m => (c -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
infixr 9 <<>^<
(<<>^^) :: forall a b c m r' r''. Monad m => m r' -> (a -> m r'') -> a -> b -> c -> m r'
infixr 9 <<>^^
(<<<**) :: forall a b c d e m r' r''. Monad m => (a -> b -> d -> m r') -> (c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r'
infixr 9 <<<**
(<<<*&) :: forall a b c d m r' r''. Monad m => (a -> b -> d -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <<<*&
(<<<*>) :: forall a b c d m r' r''. Monad m => (a -> b -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <<<*>
(<<<*<) :: forall a b c d m r' r''. Monad m => (a -> b -> d -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <<<*<
(<<<*^) :: forall a b c d m r' r''. Monad m => (a -> b -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <<<*^
(<<<&*) :: forall a b c d m r' r''. Monad m => (a -> b -> c -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <<<&*
(<<<&&) :: forall a b c m r' r''. Monad m => (a -> b -> c -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<<&&
(<<<&>) :: forall a b c m r' r''. Monad m => (a -> b -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<<&>
(<<<&<) :: forall a b c m r' r''. Monad m => (a -> b -> c -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
infixr 9 <<<&<
(<<<&^) :: forall a b c m r' r''. Monad m => (a -> b -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
infixr 9 <<<&^
(<<<>*) :: forall a b c d m r' r''. Monad m => (a -> c -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <<<>*
(<<<>&) :: forall a b c m r' r''. Monad m => (a -> c -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<<>&
(<<<>>) :: forall a b c m r' r''. Monad m => (a -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<<>>
(<<<><) :: forall a b c m r' r''. Monad m => (a -> c -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
infixr 9 <<<><
(<<<>^) :: forall a b c m r' r''. Monad m => (a -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
infixr 9 <<<>^
(<<<<*) :: forall a b c d m r' r''. Monad m => (a -> b -> c -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <<<<*
(<<<<&) :: forall a b c m r' r''. Monad m => (a -> b -> c -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<<<&
(<<<<>) :: forall a b c m r' r''. Monad m => (a -> b -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<<<>
(<<<<<) :: forall a b c m r' r''. Monad m => (a -> b -> c -> m r') -> m r'' -> a -> b -> c -> m r'
infixr 9 <<<<<
(<<<<^) :: forall a b c m r' r''. Monad m => (a -> b -> m r') -> m r'' -> a -> b -> c -> m r'
infixr 9 <<<<^
(<<<^*) :: forall a b c d m r' r''. Monad m => (a -> c -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <<<^*
(<<<^&) :: forall a b c m r' r''. Monad m => (a -> c -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<<^&
(<<<^>) :: forall a b c m r' r''. Monad m => (a -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<<^>
(<<<^<) :: forall a b c m r' r''. Monad m => (a -> c -> m r') -> m r'' -> a -> b -> c -> m r'
infixr 9 <<<^<
(<<<^^) :: forall a b c m r' r''. Monad m => (a -> m r') -> m r'' -> a -> b -> c -> m r'
infixr 9 <<<^^
(<<^**) :: forall a b c d e m r' r''. Monad m => (b -> d -> m r') -> (c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r'
infixr 9 <<^**
(<<^*&) :: forall a b c d m r' r''. Monad m => (b -> d -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <<^*&
(<<^*>) :: forall a b c d m r' r''. Monad m => (b -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <<^*>
(<<^*<) :: forall a b c d m r' r''. Monad m => (b -> d -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <<^*<
(<<^*^) :: forall a b c d m r' r''. Monad m => (b -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r'
infixr 9 <<^*^
(<<^&*) :: forall a b c d m r' r''. Monad m => (b -> c -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <<^&*
(<<^&&) :: forall a b c m r' r''. Monad m => (b -> c -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<^&&
(<<^&>) :: forall a b c m r' r''. Monad m => (b -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<^&>
(<<^&<) :: forall a b c m r' r''. Monad m => (b -> c -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
infixr 9 <<^&<
(<<^&^) :: forall a b c m r' r''. Monad m => (b -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
infixr 9 <<^&^
(<<^>*) :: forall a b c d m r' r''. Monad m => (c -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <<^>*
(<<^>&) :: forall a b c m r' r''. Monad m => (c -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<^>&
(<<^>>) :: forall a b c m r' r''. Monad m => m r' -> (b -> c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<^>>
(<<^><) :: forall a b c m r' r''. Monad m => (c -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
infixr 9 <<^><
(<<^>^) :: forall a b c m r' r''. Monad m => m r' -> (b -> m r'') -> a -> b -> c -> m r'
infixr 9 <<^>^
(<<^<*) :: forall a b c d m r' r''. Monad m => (b -> c -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <<^<*
(<<^<&) :: forall a b c m r' r''. Monad m => (b -> c -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<^<&
(<<^<>) :: forall a b c m r' r''. Monad m => (b -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<^<>
(<<^<<) :: forall a b c m r' r''. Monad m => (b -> c -> m r') -> m r'' -> a -> b -> c -> m r'
infixr 9 <<^<<
(<<^<^) :: forall a b c m r' r''. Monad m => (b -> m r') -> m r'' -> a -> b -> c -> m r'
infixr 9 <<^<^
(<<^^*) :: forall a b c d m r' r''. Monad m => (c -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r'
infixr 9 <<^^*
(<<^^&) :: forall a b c m r' r''. Monad m => (c -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<^^&
(<<^^>) :: forall a b c m r' r''. Monad m => m r' -> (c -> m r'') -> a -> b -> c -> m r'
infixr 9 <<^^>
(<<^^<) :: forall a b c m r' r''. Monad m => (c -> m r') -> m r'' -> a -> b -> c -> m r'
infixr 9 <<^^<
(<<^^^) :: forall a b c m r' r''. Monad m => m r' -> m r'' -> a -> b -> c -> m r'
infixr 9 <<^^^
(<<**) :: forall a b c d m r' r''. Monad m => (a -> c -> m r') -> (b -> d -> m r'') -> (a, b) -> (c, d) -> m r'
infixr 9 <<**
(<<*&) :: forall a b c m r' r''. Monad m => (a -> c -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> m r'
infixr 9 <<*&
(<<*>) :: forall a b c m r' r''. Monad m => (a -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> m r'
infixr 9 <<*>
(<<*<) :: forall a b c m r' r''. Monad m => (a -> c -> m r') -> (b -> m r'') -> (a, b) -> c -> m r'
infixr 9 <<*<
(<<*^) :: forall a b c m r' r''. Monad m => (a -> m r') -> (b -> m r'') -> (a, b) -> c -> m r'
infixr 9 <<*^
(<<&*) :: forall a b c m r' r''. Monad m => (a -> b -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> m r'
infixr 9 <<&*
(<<&&) :: forall a b m r' r''. Monad m => (a -> b -> m r') -> (a -> b -> m r'') -> a -> b -> m r'
infixr 9 <<&&
(<<&>) :: forall a b m r' r''. Monad m => (a -> m r') -> (a -> b -> m r'') -> a -> b -> m r'
infixr 9 <<&>
(<<&<) :: forall a b m r' r''. Monad m => (a -> b -> m r') -> (a -> m r'') -> a -> b -> m r'
infixr 9 <<&<
(<<&^) :: forall a b m r' r''. Monad m => (a -> m r') -> (a -> m r'') -> a -> b -> m r'
infixr 9 <<&^
(<<>*) :: forall a b c m r' r''. Monad m => (b -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> m r'
infixr 9 <<>*
(<<>&) :: forall a b m r' r''. Monad m => (b -> m r') -> (a -> b -> m r'') -> a -> b -> m r'
infixr 9 <<>&
(<<>>) :: forall a b m r' r''. Monad m => m r' -> (a -> b -> m r'') -> a -> b -> m r'
infixr 9 <<>>
(<<><) :: forall a b m r' r''. Monad m => (b -> m r') -> (a -> m r'') -> a -> b -> m r'
infixr 9 <<><
(<<>^) :: forall a b m r' r''. Monad m => m r' -> (a -> m r'') -> a -> b -> m r'
infixr 9 <<>^
(<<<*) :: forall a b c m r' r''. Monad m => (a -> b -> m r') -> (c -> m r'') -> a -> (b, c) -> m r'
infixr 9 <<<*
(<<<&) :: forall a b m r' r''. Monad m => (a -> b -> m r') -> (b -> m r'') -> a -> b -> m r'
infixr 9 <<<&
(<<<>) :: forall a b m r' r''. Monad m => (a -> m r') -> (b -> m r'') -> a -> b -> m r'
infixr 9 <<<>
(<<<<) :: forall a b m r' r''. Monad m => (a -> b -> m r') -> m r'' -> a -> b -> m r'
infixr 9 <<<<
(<<<^) :: forall a b m r' r''. Monad m => (a -> m r') -> m r'' -> a -> b -> m r'
infixr 9 <<<^
(<<^*) :: forall a b c m r' r''. Monad m => (b -> m r') -> (c -> m r'') -> a -> (b, c) -> m r'
infixr 9 <<^*
(<<^&) :: forall a b m r' r''. Monad m => (b -> m r') -> (b -> m r'') -> a -> b -> m r'
infixr 9 <<^&
(<<^>) :: forall a b m r' r''. Monad m => m r' -> (b -> m r'') -> a -> b -> m r'
infixr 9 <<^>
(<<^<) :: forall a b m r' r''. Monad m => (b -> m r') -> m r'' -> a -> b -> m r'
infixr 9 <<^<
(<<^^) :: forall a b m r' r''. Monad m => m r' -> m r'' -> a -> b -> m r'
infixr 9 <<^^
(<<*) :: forall a b m r' r''. Monad m => (a -> m r') -> (b -> m r'') -> (a, b) -> m r'
infixr 9 <<*
(<<&) :: forall a m r' r''. Monad m => (a -> m r') -> (a -> m r'') -> a -> m r'
infixr 9 <<&
(<<>) :: forall a m r' r''. Monad m => m r' -> (a -> m r'') -> a -> m r'
infixr 9 <<>
(<<<) :: forall a m r' r''. Monad m => (a -> m r') -> m r'' -> a -> m r'
infixr 9 <<<
(<<^) :: forall a m r' r''. Monad m => m r' -> m r'' -> a -> m r'
infixr 9 <<^
(>>***) :: forall a b c d e f m r' r''. Monad m => (a -> c -> e -> m r') -> (b -> d -> f -> m r'') -> (a, b) -> (c, d) -> (e, f) -> m r''
infixr 9 >>***
(>>**&) :: forall a b c d e m r' r''. Monad m => (a -> c -> e -> m r') -> (b -> d -> e -> m r'') -> (a, b) -> (c, d) -> e -> m r''
infixr 9 >>**&
(>>**>) :: forall a b c d e m r' r''. Monad m => (a -> c -> m r') -> (b -> d -> e -> m r'') -> (a, b) -> (c, d) -> e -> m r''
infixr 9 >>**>
(>>**<) :: forall a b c d e m r' r''. Monad m => (a -> c -> e -> m r') -> (b -> d -> m r'') -> (a, b) -> (c, d) -> e -> m r''
infixr 9 >>**<
(>>**^) :: forall a b c d e m r' r''. Monad m => (a -> c -> m r') -> (b -> d -> m r'') -> (a, b) -> (c, d) -> e -> m r''
infixr 9 >>**^
(>>*&*) :: forall a b c d e m r' r''. Monad m => (a -> c -> d -> m r') -> (b -> c -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r''
infixr 9 >>*&*
(>>*&&) :: forall a b c d m r' r''. Monad m => (a -> c -> d -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r''
infixr 9 >>*&&
(>>*&>) :: forall a b c d m r' r''. Monad m => (a -> c -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r''
infixr 9 >>*&>
(>>*&<) :: forall a b c d m r' r''. Monad m => (a -> c -> d -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r''
infixr 9 >>*&<
(>>*&^) :: forall a b c d m r' r''. Monad m => (a -> c -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r''
infixr 9 >>*&^
(>>*>*) :: forall a b c d e m r' r''. Monad m => (a -> d -> m r') -> (b -> c -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r''
infixr 9 >>*>*
(>>*>&) :: forall a b c d m r' r''. Monad m => (a -> d -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r''
infixr 9 >>*>&
(>>*>>) :: forall a b c d m r' r''. Monad m => (a -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r''
infixr 9 >>*>>
(>>*><) :: forall a b c d m r' r''. Monad m => (a -> d -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r''
infixr 9 >>*><
(>>*>^) :: forall a b c d m r' r''. Monad m => (a -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r''
infixr 9 >>*>^
(>>*<*) :: forall a b c d e m r' r''. Monad m => (a -> c -> d -> m r') -> (b -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r''
infixr 9 >>*<*
(>>*<&) :: forall a b c d m r' r''. Monad m => (a -> c -> d -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r''
infixr 9 >>*<&
(>>*<>) :: forall a b c d m r' r''. Monad m => (a -> c -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r''
infixr 9 >>*<>
(>>*<<) :: forall a b c d m r' r''. Monad m => (a -> c -> d -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r''
infixr 9 >>*<<
(>>*<^) :: forall a b c d m r' r''. Monad m => (a -> c -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r''
infixr 9 >>*<^
(>>*^*) :: forall a b c d e m r' r''. Monad m => (a -> d -> m r') -> (b -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r''
infixr 9 >>*^*
(>>*^&) :: forall a b c d m r' r''. Monad m => (a -> d -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r''
infixr 9 >>*^&
(>>*^>) :: forall a b c d m r' r''. Monad m => (a -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r''
infixr 9 >>*^>
(>>*^<) :: forall a b c d m r' r''. Monad m => (a -> d -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r''
infixr 9 >>*^<
(>>*^^) :: forall a b c d m r' r''. Monad m => (a -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r''
infixr 9 >>*^^
(>>&**) :: forall a b c d e m r' r''. Monad m => (a -> b -> d -> m r') -> (a -> c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r''
infixr 9 >>&**
(>>&*&) :: forall a b c d m r' r''. Monad m => (a -> b -> d -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r''
infixr 9 >>&*&
(>>&*>) :: forall a b c d m r' r''. Monad m => (a -> b -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r''
infixr 9 >>&*>
(>>&*<) :: forall a b c d m r' r''. Monad m => (a -> b -> d -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r''
infixr 9 >>&*<
(>>&*^) :: forall a b c d m r' r''. Monad m => (a -> b -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r''
infixr 9 >>&*^
(>>&&*) :: forall a b c d m r' r''. Monad m => (a -> b -> c -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r''
infixr 9 >>&&*
(>>&&&) :: forall a b c m r' r''. Monad m => (a -> b -> c -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>&&&
(>>&&>) :: forall a b c m r' r''. Monad m => (a -> b -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>&&>
(>>&&<) :: forall a b c m r' r''. Monad m => (a -> b -> c -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r''
infixr 9 >>&&<
(>>&&^) :: forall a b c m r' r''. Monad m => (a -> b -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r''
infixr 9 >>&&^
(>>&>*) :: forall a b c d m r' r''. Monad m => (a -> c -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r''
infixr 9 >>&>*
(>>&>&) :: forall a b c m r' r''. Monad m => (a -> c -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>&>&
(>>&>>) :: forall a b c m r' r''. Monad m => (a -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>&>>
(>>&><) :: forall a b c m r' r''. Monad m => (a -> c -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r''
infixr 9 >>&><
(>>&>^) :: forall a b c m r' r''. Monad m => (a -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r''
infixr 9 >>&>^
(>>&<*) :: forall a b c d m r' r''. Monad m => (a -> b -> c -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r''
infixr 9 >>&<*
(>>&<&) :: forall a b c m r' r''. Monad m => (a -> b -> c -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>&<&
(>>&<>) :: forall a b c m r' r''. Monad m => (a -> b -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>&<>
(>>&<<) :: forall a b c m r' r''. Monad m => (a -> b -> c -> m r') -> (a -> m r'') -> a -> b -> c -> m r''
infixr 9 >>&<<
(>>&<^) :: forall a b c m r' r''. Monad m => (a -> b -> m r') -> (a -> m r'') -> a -> b -> c -> m r''
infixr 9 >>&<^
(>>&^*) :: forall a b c d m r' r''. Monad m => (a -> c -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r''
infixr 9 >>&^*
(>>&^&) :: forall a b c m r' r''. Monad m => (a -> c -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>&^&
(>>&^>) :: forall a b c m r' r''. Monad m => (a -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>&^>
(>>&^<) :: forall a b c m r' r''. Monad m => (a -> c -> m r') -> (a -> m r'') -> a -> b -> c -> m r''
infixr 9 >>&^<
(>>&^^) :: forall a b c m r' r''. Monad m => (a -> m r') -> (a -> m r'') -> a -> b -> c -> m r''
infixr 9 >>&^^
(>>>**) :: forall a b c d e m r' r''. Monad m => (b -> d -> m r') -> (a -> c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r''
infixr 9 >>>**
(>>>*&) :: forall a b c d m r' r''. Monad m => (b -> d -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r''
infixr 9 >>>*&
(>>>*>) :: forall a b c d m r' r''. Monad m => (b -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r''
infixr 9 >>>*>
(>>>*<) :: forall a b c d m r' r''. Monad m => (b -> d -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r''
infixr 9 >>>*<
(>>>*^) :: forall a b c d m r' r''. Monad m => (b -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r''
infixr 9 >>>*^
(>>>&*) :: forall a b c d m r' r''. Monad m => (b -> c -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r''
infixr 9 >>>&*
(>>>&&) :: forall a b c m r' r''. Monad m => (b -> c -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>>&&
(>>>&>) :: forall a b c m r' r''. Monad m => (b -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>>&>
(>>>&<) :: forall a b c m r' r''. Monad m => (b -> c -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r''
infixr 9 >>>&<
(>>>&^) :: forall a b c m r' r''. Monad m => (b -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r''
infixr 9 >>>&^
(>>>>*) :: forall a b c d m r' r''. Monad m => (c -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r''
infixr 9 >>>>*
(>>>>&) :: forall a b c m r' r''. Monad m => (c -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>>>&
(>>>>>) :: forall a b c m r' r''. Monad m => m r' -> (a -> b -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>>>>
(>>>><) :: forall a b c m r' r''. Monad m => (c -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r''
infixr 9 >>>><
(>>>>^) :: forall a b c m r' r''. Monad m => m r' -> (a -> b -> m r'') -> a -> b -> c -> m r''
infixr 9 >>>>^
(>>><*) :: forall a b c d m r' r''. Monad m => (b -> c -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r''
infixr 9 >>><*
(>>><&) :: forall a b c m r' r''. Monad m => (b -> c -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>><&
(>>><>) :: forall a b c m r' r''. Monad m => (b -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>><>
(>>><<) :: forall a b c m r' r''. Monad m => (b -> c -> m r') -> (a -> m r'') -> a -> b -> c -> m r''
infixr 9 >>><<
(>>><^) :: forall a b c m r' r''. Monad m => (b -> m r') -> (a -> m r'') -> a -> b -> c -> m r''
infixr 9 >>><^
(>>>^*) :: forall a b c d m r' r''. Monad m => (c -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r''
infixr 9 >>>^*
(>>>^&) :: forall a b c m r' r''. Monad m => (c -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>>^&
(>>>^>) :: forall a b c m r' r''. Monad m => m r' -> (a -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>>^>
(>>>^<) :: forall a b c m r' r''. Monad m => (c -> m r') -> (a -> m r'') -> a -> b -> c -> m r''
infixr 9 >>>^<
(>>>^^) :: forall a b c m r' r''. Monad m => m r' -> (a -> m r'') -> a -> b -> c -> m r''
infixr 9 >>>^^
(>><**) :: forall a b c d e m r' r''. Monad m => (a -> b -> d -> m r') -> (c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r''
infixr 9 >><**
(>><*&) :: forall a b c d m r' r''. Monad m => (a -> b -> d -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r''
infixr 9 >><*&
(>><*>) :: forall a b c d m r' r''. Monad m => (a -> b -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r''
infixr 9 >><*>
(>><*<) :: forall a b c d m r' r''. Monad m => (a -> b -> d -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r''
infixr 9 >><*<
(>><*^) :: forall a b c d m r' r''. Monad m => (a -> b -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r''
infixr 9 >><*^
(>><&*) :: forall a b c d m r' r''. Monad m => (a -> b -> c -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r''
infixr 9 >><&*
(>><&&) :: forall a b c m r' r''. Monad m => (a -> b -> c -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >><&&
(>><&>) :: forall a b c m r' r''. Monad m => (a -> b -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >><&>
(>><&<) :: forall a b c m r' r''. Monad m => (a -> b -> c -> m r') -> (b -> m r'') -> a -> b -> c -> m r''
infixr 9 >><&<
(>><&^) :: forall a b c m r' r''. Monad m => (a -> b -> m r') -> (b -> m r'') -> a -> b -> c -> m r''
infixr 9 >><&^
(>><>*) :: forall a b c d m r' r''. Monad m => (a -> c -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r''
infixr 9 >><>*
(>><>&) :: forall a b c m r' r''. Monad m => (a -> c -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >><>&
(>><>>) :: forall a b c m r' r''. Monad m => (a -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >><>>
(>><><) :: forall a b c m r' r''. Monad m => (a -> c -> m r') -> (b -> m r'') -> a -> b -> c -> m r''
infixr 9 >><><
(>><>^) :: forall a b c m r' r''. Monad m => (a -> m r') -> (b -> m r'') -> a -> b -> c -> m r''
infixr 9 >><>^
(>><<*) :: forall a b c d m r' r''. Monad m => (a -> b -> c -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r''
infixr 9 >><<*
(>><<&) :: forall a b c m r' r''. Monad m => (a -> b -> c -> m r') -> (c -> m r'') -> a -> b -> c -> m r''
infixr 9 >><<&
(>><<>) :: forall a b c m r' r''. Monad m => (a -> b -> m r') -> (c -> m r'') -> a -> b -> c -> m r''
infixr 9 >><<>
(>><<<) :: forall a b c m r' r''. Monad m => (a -> b -> c -> m r') -> m r'' -> a -> b -> c -> m r''
infixr 9 >><<<
(>><<^) :: forall a b c m r' r''. Monad m => (a -> b -> m r') -> m r'' -> a -> b -> c -> m r''
infixr 9 >><<^
(>><^*) :: forall a b c d m r' r''. Monad m => (a -> c -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r''
infixr 9 >><^*
(>><^&) :: forall a b c m r' r''. Monad m => (a -> c -> m r') -> (c -> m r'') -> a -> b -> c -> m r''
infixr 9 >><^&
(>><^>) :: forall a b c m r' r''. Monad m => (a -> m r') -> (c -> m r'') -> a -> b -> c -> m r''
infixr 9 >><^>
(>><^<) :: forall a b c m r' r''. Monad m => (a -> c -> m r') -> m r'' -> a -> b -> c -> m r''
infixr 9 >><^<
(>><^^) :: forall a b c m r' r''. Monad m => (a -> m r') -> m r'' -> a -> b -> c -> m r''
infixr 9 >><^^
(>>^**) :: forall a b c d e m r' r''. Monad m => (b -> d -> m r') -> (c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r''
infixr 9 >>^**
(>>^*&) :: forall a b c d m r' r''. Monad m => (b -> d -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r''
infixr 9 >>^*&
(>>^*>) :: forall a b c d m r' r''. Monad m => (b -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r''
infixr 9 >>^*>
(>>^*<) :: forall a b c d m r' r''. Monad m => (b -> d -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r''
infixr 9 >>^*<
(>>^*^) :: forall a b c d m r' r''. Monad m => (b -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r''
infixr 9 >>^*^
(>>^&*) :: forall a b c d m r' r''. Monad m => (b -> c -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r''
infixr 9 >>^&*
(>>^&&) :: forall a b c m r' r''. Monad m => (b -> c -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>^&&
(>>^&>) :: forall a b c m r' r''. Monad m => (b -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>^&>
(>>^&<) :: forall a b c m r' r''. Monad m => (b -> c -> m r') -> (b -> m r'') -> a -> b -> c -> m r''
infixr 9 >>^&<
(>>^&^) :: forall a b c m r' r''. Monad m => (b -> m r') -> (b -> m r'') -> a -> b -> c -> m r''
infixr 9 >>^&^
(>>^>*) :: forall a b c d m r' r''. Monad m => (c -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r''
infixr 9 >>^>*
(>>^>&) :: forall a b c m r' r''. Monad m => (c -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>^>&
(>>^>>) :: forall a b c m r' r''. Monad m => m r' -> (b -> c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>^>>
(>>^><) :: forall a b c m r' r''. Monad m => (c -> m r') -> (b -> m r'') -> a -> b -> c -> m r''
infixr 9 >>^><
(>>^>^) :: forall a b c m r' r''. Monad m => m r' -> (b -> m r'') -> a -> b -> c -> m r''
infixr 9 >>^>^
(>>^<*) :: forall a b c d m r' r''. Monad m => (b -> c -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r''
infixr 9 >>^<*
(>>^<&) :: forall a b c m r' r''. Monad m => (b -> c -> m r') -> (c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>^<&
(>>^<>) :: forall a b c m r' r''. Monad m => (b -> m r') -> (c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>^<>
(>>^<<) :: forall a b c m r' r''. Monad m => (b -> c -> m r') -> m r'' -> a -> b -> c -> m r''
infixr 9 >>^<<
(>>^<^) :: forall a b c m r' r''. Monad m => (b -> m r') -> m r'' -> a -> b -> c -> m r''
infixr 9 >>^<^
(>>^^*) :: forall a b c d m r' r''. Monad m => (c -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r''
infixr 9 >>^^*
(>>^^&) :: forall a b c m r' r''. Monad m => (c -> m r') -> (c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>^^&
(>>^^>) :: forall a b c m r' r''. Monad m => m r' -> (c -> m r'') -> a -> b -> c -> m r''
infixr 9 >>^^>
(>>^^<) :: forall a b c m r' r''. Monad m => (c -> m r') -> m r'' -> a -> b -> c -> m r''
infixr 9 >>^^<
(>>^^^) :: forall a b c m r' r''. Monad m => m r' -> m r'' -> a -> b -> c -> m r''
infixr 9 >>^^^
(>>**) :: forall a b c d m r' r''. Monad m => (a -> c -> m r') -> (b -> d -> m r'') -> (a, b) -> (c, d) -> m r''
infixr 9 >>**
(>>*&) :: forall a b c m r' r''. Monad m => (a -> c -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> m r''
infixr 9 >>*&
(>>*>) :: forall a b c m r' r''. Monad m => (a -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> m r''
infixr 9 >>*>
(>>*<) :: forall a b c m r' r''. Monad m => (a -> c -> m r') -> (b -> m r'') -> (a, b) -> c -> m r''
infixr 9 >>*<
(>>*^) :: forall a b c m r' r''. Monad m => (a -> m r') -> (b -> m r'') -> (a, b) -> c -> m r''
infixr 9 >>*^
(>>&*) :: forall a b c m r' r''. Monad m => (a -> b -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> m r''
infixr 9 >>&*
(>>&&) :: forall a b m r' r''. Monad m => (a -> b -> m r') -> (a -> b -> m r'') -> a -> b -> m r''
infixr 9 >>&&
(>>&>) :: forall a b m r' r''. Monad m => (a -> m r') -> (a -> b -> m r'') -> a -> b -> m r''
infixr 9 >>&>
(>>&<) :: forall a b m r' r''. Monad m => (a -> b -> m r') -> (a -> m r'') -> a -> b -> m r''
infixr 9 >>&<
(>>&^) :: forall a b m r' r''. Monad m => (a -> m r') -> (a -> m r'') -> a -> b -> m r''
infixr 9 >>&^
(>>>*) :: forall a b c m r' r''. Monad m => (b -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> m r''
infixr 9 >>>*
(>>>&) :: forall a b m r' r''. Monad m => (b -> m r') -> (a -> b -> m r'') -> a -> b -> m r''
infixr 9 >>>&
(>>>>) :: forall a b m r' r''. Monad m => m r' -> (a -> b -> m r'') -> a -> b -> m r''
infixr 9 >>>>
(>>><) :: forall a b m r' r''. Monad m => (b -> m r') -> (a -> m r'') -> a -> b -> m r''
infixr 9 >>><
(>>>^) :: forall a b m r' r''. Monad m => m r' -> (a -> m r'') -> a -> b -> m r''
infixr 9 >>>^
(>><*) :: forall a b c m r' r''. Monad m => (a -> b -> m r') -> (c -> m r'') -> a -> (b, c) -> m r''
infixr 9 >><*
(>><&) :: forall a b m r' r''. Monad m => (a -> b -> m r') -> (b -> m r'') -> a -> b -> m r''
infixr 9 >><&
(>><>) :: forall a b m r' r''. Monad m => (a -> m r') -> (b -> m r'') -> a -> b -> m r''
infixr 9 >><>
(>><<) :: forall a b m r' r''. Monad m => (a -> b -> m r') -> m r'' -> a -> b -> m r''
infixr 9 >><<
(>><^) :: forall a b m r' r''. Monad m => (a -> m r') -> m r'' -> a -> b -> m r''
infixr 9 >><^
(>>^*) :: forall a b c m r' r''. Monad m => (b -> m r') -> (c -> m r'') -> a -> (b, c) -> m r''
infixr 9 >>^*
(>>^&) :: forall a b m r' r''. Monad m => (b -> m r') -> (b -> m r'') -> a -> b -> m r''
infixr 9 >>^&
(>>^>) :: forall a b m r' r''. Monad m => m r' -> (b -> m r'') -> a -> b -> m r''
infixr 9 >>^>
(>>^<) :: forall a b m r' r''. Monad m => (b -> m r') -> m r'' -> a -> b -> m r''
infixr 9 >>^<
(>>^^) :: forall a b m r' r''. Monad m => m r' -> m r'' -> a -> b -> m r''
infixr 9 >>^^
(>>*) :: forall a b m r' r''. Monad m => (a -> m r') -> (b -> m r'') -> (a, b) -> m r''
infixr 9 >>*
(>>&) :: forall a m r' r''. Monad m => (a -> m r') -> (a -> m r'') -> a -> m r''
infixr 9 >>&
(>>>) :: forall a m r' r''. Monad m => m r' -> (a -> m r'') -> a -> m r''
infixr 9 >>>
(>><) :: forall a m r' r''. Monad m => (a -> m r') -> m r'' -> a -> m r''
infixr 9 >><
(>>^) :: forall a m r' r''. Monad m => m r' -> m r'' -> a -> m r''
infixr 9 >>^
-- | This module exports 2 * (5 + 5^2 + 5^3) = 310 operators, all
-- pointless combinators for composing functions together with
-- additional plumbing.
--
-- See the plumbers post at www.mgsloan.com for more information.
module Control.Plumbers
($***) :: forall a b c d e f r' r''. (a -> c -> e -> r'' -> r') -> (b -> d -> f -> r'') -> (a, b) -> (c, d) -> (e, f) -> r'
infixr 9 $***
($**&) :: forall a b c d e r' r''. (a -> c -> e -> r'' -> r') -> (b -> d -> e -> r'') -> (a, b) -> (c, d) -> e -> r'
infixr 9 $**&
($**>) :: forall a b c d e r' r''. (a -> c -> r'' -> r') -> (b -> d -> e -> r'') -> (a, b) -> (c, d) -> e -> r'
infixr 9 $**>
($**<) :: forall a b c d e r' r''. (a -> c -> e -> r'' -> r') -> (b -> d -> r'') -> (a, b) -> (c, d) -> e -> r'
infixr 9 $**<
($**^) :: forall a b c d e r' r''. (a -> c -> r'' -> r') -> (b -> d -> r'') -> (a, b) -> (c, d) -> e -> r'
infixr 9 $**^
($*&*) :: forall a b c d e r' r''. (a -> c -> d -> r'' -> r') -> (b -> c -> e -> r'') -> (a, b) -> c -> (d, e) -> r'
infixr 9 $*&*
($*&&) :: forall a b c d r' r''. (a -> c -> d -> r'' -> r') -> (b -> c -> d -> r'') -> (a, b) -> c -> d -> r'
infixr 9 $*&&
($*&>) :: forall a b c d r' r''. (a -> c -> r'' -> r') -> (b -> c -> d -> r'') -> (a, b) -> c -> d -> r'
infixr 9 $*&>
($*&<) :: forall a b c d r' r''. (a -> c -> d -> r'' -> r') -> (b -> c -> r'') -> (a, b) -> c -> d -> r'
infixr 9 $*&<
($*&^) :: forall a b c d r' r''. (a -> c -> r'' -> r') -> (b -> c -> r'') -> (a, b) -> c -> d -> r'
infixr 9 $*&^
($*>*) :: forall a b c d e r' r''. (a -> d -> r'' -> r') -> (b -> c -> e -> r'') -> (a, b) -> c -> (d, e) -> r'
infixr 9 $*>*
($*>&) :: forall a b c d r' r''. (a -> d -> r'' -> r') -> (b -> c -> d -> r'') -> (a, b) -> c -> d -> r'
infixr 9 $*>&
($*>>) :: forall a b c d r' r''. (a -> r'' -> r') -> (b -> c -> d -> r'') -> (a, b) -> c -> d -> r'
infixr 9 $*>>
($*><) :: forall a b c d r' r''. (a -> d -> r'' -> r') -> (b -> c -> r'') -> (a, b) -> c -> d -> r'
infixr 9 $*><
($*>^) :: forall a b c d r' r''. (a -> r'' -> r') -> (b -> c -> r'') -> (a, b) -> c -> d -> r'
infixr 9 $*>^
($*<*) :: forall a b c d e r' r''. (a -> c -> d -> r'' -> r') -> (b -> e -> r'') -> (a, b) -> c -> (d, e) -> r'
infixr 9 $*<*
($*<&) :: forall a b c d r' r''. (a -> c -> d -> r'' -> r') -> (b -> d -> r'') -> (a, b) -> c -> d -> r'
infixr 9 $*<&
($*<>) :: forall a b c d r' r''. (a -> c -> r'' -> r') -> (b -> d -> r'') -> (a, b) -> c -> d -> r'
infixr 9 $*<>
($*<<) :: forall a b c d r' r''. (a -> c -> d -> r'' -> r') -> (b -> r'') -> (a, b) -> c -> d -> r'
infixr 9 $*<<
($*<^) :: forall a b c d r' r''. (a -> c -> r'' -> r') -> (b -> r'') -> (a, b) -> c -> d -> r'
infixr 9 $*<^
($*^*) :: forall a b c d e r' r''. (a -> d -> r'' -> r') -> (b -> e -> r'') -> (a, b) -> c -> (d, e) -> r'
infixr 9 $*^*
($*^&) :: forall a b c d r' r''. (a -> d -> r'' -> r') -> (b -> d -> r'') -> (a, b) -> c -> d -> r'
infixr 9 $*^&
($*^>) :: forall a b c d r' r''. (a -> r'' -> r') -> (b -> d -> r'') -> (a, b) -> c -> d -> r'
infixr 9 $*^>
($*^<) :: forall a b c d r' r''. (a -> d -> r'' -> r') -> (b -> r'') -> (a, b) -> c -> d -> r'
infixr 9 $*^<
($*^^) :: forall a b c d r' r''. (a -> r'' -> r') -> (b -> r'') -> (a, b) -> c -> d -> r'
infixr 9 $*^^
($&**) :: forall a b c d e r' r''. (a -> b -> d -> r'' -> r') -> (a -> c -> e -> r'') -> a -> (b, c) -> (d, e) -> r'
infixr 9 $&**
($&*&) :: forall a b c d r' r''. (a -> b -> d -> r'' -> r') -> (a -> c -> d -> r'') -> a -> (b, c) -> d -> r'
infixr 9 $&*&
($&*>) :: forall a b c d r' r''. (a -> b -> r'' -> r') -> (a -> c -> d -> r'') -> a -> (b, c) -> d -> r'
infixr 9 $&*>
($&*<) :: forall a b c d r' r''. (a -> b -> d -> r'' -> r') -> (a -> c -> r'') -> a -> (b, c) -> d -> r'
infixr 9 $&*<
($&*^) :: forall a b c d r' r''. (a -> b -> r'' -> r') -> (a -> c -> r'') -> a -> (b, c) -> d -> r'
infixr 9 $&*^
($&&*) :: forall a b c d r' r''. (a -> b -> c -> r'' -> r') -> (a -> b -> d -> r'') -> a -> b -> (c, d) -> r'
infixr 9 $&&*
($&&&) :: forall a b c r' r''. (a -> b -> c -> r'' -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> r'
infixr 9 $&&&
($&&>) :: forall a b c r' r''. (a -> b -> r'' -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> r'
infixr 9 $&&>
($&&<) :: forall a b c r' r''. (a -> b -> c -> r'' -> r') -> (a -> b -> r'') -> a -> b -> c -> r'
infixr 9 $&&<
($&&^) :: forall a b c r' r''. (a -> b -> r'' -> r') -> (a -> b -> r'') -> a -> b -> c -> r'
infixr 9 $&&^
($&>*) :: forall a b c d r' r''. (a -> c -> r'' -> r') -> (a -> b -> d -> r'') -> a -> b -> (c, d) -> r'
infixr 9 $&>*
($&>&) :: forall a b c r' r''. (a -> c -> r'' -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> r'
infixr 9 $&>&
($&>>) :: forall a b c r' r''. (a -> r'' -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> r'
infixr 9 $&>>
($&><) :: forall a b c r' r''. (a -> c -> r'' -> r') -> (a -> b -> r'') -> a -> b -> c -> r'
infixr 9 $&><
($&>^) :: forall a b c r' r''. (a -> r'' -> r') -> (a -> b -> r'') -> a -> b -> c -> r'
infixr 9 $&>^
($&<*) :: forall a b c d r' r''. (a -> b -> c -> r'' -> r') -> (a -> d -> r'') -> a -> b -> (c, d) -> r'
infixr 9 $&<*
($&<&) :: forall a b c r' r''. (a -> b -> c -> r'' -> r') -> (a -> c -> r'') -> a -> b -> c -> r'
infixr 9 $&<&
($&<>) :: forall a b c r' r''. (a -> b -> r'' -> r') -> (a -> c -> r'') -> a -> b -> c -> r'
infixr 9 $&<>
($&<<) :: forall a b c r' r''. (a -> b -> c -> r'' -> r') -> (a -> r'') -> a -> b -> c -> r'
infixr 9 $&<<
($&<^) :: forall a b c r' r''. (a -> b -> r'' -> r') -> (a -> r'') -> a -> b -> c -> r'
infixr 9 $&<^
($&^*) :: forall a b c d r' r''. (a -> c -> r'' -> r') -> (a -> d -> r'') -> a -> b -> (c, d) -> r'
infixr 9 $&^*
($&^&) :: forall a b c r' r''. (a -> c -> r'' -> r') -> (a -> c -> r'') -> a -> b -> c -> r'
infixr 9 $&^&
($&^>) :: forall a b c r' r''. (a -> r'' -> r') -> (a -> c -> r'') -> a -> b -> c -> r'
infixr 9 $&^>
($&^<) :: forall a b c r' r''. (a -> c -> r'' -> r') -> (a -> r'') -> a -> b -> c -> r'
infixr 9 $&^<
($&^^) :: forall a b c r' r''. (a -> r'' -> r') -> (a -> r'') -> a -> b -> c -> r'
infixr 9 $&^^
($>**) :: forall a b c d e r' r''. (b -> d -> r'' -> r') -> (a -> c -> e -> r'') -> a -> (b, c) -> (d, e) -> r'
infixr 9 $>**
($>*&) :: forall a b c d r' r''. (b -> d -> r'' -> r') -> (a -> c -> d -> r'') -> a -> (b, c) -> d -> r'
infixr 9 $>*&
($>*>) :: forall a b c d r' r''. (b -> r'' -> r') -> (a -> c -> d -> r'') -> a -> (b, c) -> d -> r'
infixr 9 $>*>
($>*<) :: forall a b c d r' r''. (b -> d -> r'' -> r') -> (a -> c -> r'') -> a -> (b, c) -> d -> r'
infixr 9 $>*<
($>*^) :: forall a b c d r' r''. (b -> r'' -> r') -> (a -> c -> r'') -> a -> (b, c) -> d -> r'
infixr 9 $>*^
($>&*) :: forall a b c d r' r''. (b -> c -> r'' -> r') -> (a -> b -> d -> r'') -> a -> b -> (c, d) -> r'
infixr 9 $>&*
($>&&) :: forall a b c r' r''. (b -> c -> r'' -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> r'
infixr 9 $>&&
($>&>) :: forall a b c r' r''. (b -> r'' -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> r'
infixr 9 $>&>
($>&<) :: forall a b c r' r''. (b -> c -> r'' -> r') -> (a -> b -> r'') -> a -> b -> c -> r'
infixr 9 $>&<
($>&^) :: forall a b c r' r''. (b -> r'' -> r') -> (a -> b -> r'') -> a -> b -> c -> r'
infixr 9 $>&^
($>>*) :: forall a b c d r' r''. (c -> r'' -> r') -> (a -> b -> d -> r'') -> a -> b -> (c, d) -> r'
infixr 9 $>>*
($>>&) :: forall a b c r' r''. (c -> r'' -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> r'
infixr 9 $>>&
($>>>) :: forall a b c r' r''. (r'' -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> r'
infixr 9 $>>>
($>><) :: forall a b c r' r''. (c -> r'' -> r') -> (a -> b -> r'') -> a -> b -> c -> r'
infixr 9 $>><
($>>^) :: forall a b c r' r''. (r'' -> r') -> (a -> b -> r'') -> a -> b -> c -> r'
infixr 9 $>>^
($><*) :: forall a b c d r' r''. (b -> c -> r'' -> r') -> (a -> d -> r'') -> a -> b -> (c, d) -> r'
infixr 9 $><*
($><&) :: forall a b c r' r''. (b -> c -> r'' -> r') -> (a -> c -> r'') -> a -> b -> c -> r'
infixr 9 $><&
($><>) :: forall a b c r' r''. (b -> r'' -> r') -> (a -> c -> r'') -> a -> b -> c -> r'
infixr 9 $><>
($><<) :: forall a b c r' r''. (b -> c -> r'' -> r') -> (a -> r'') -> a -> b -> c -> r'
infixr 9 $><<
($><^) :: forall a b c r' r''. (b -> r'' -> r') -> (a -> r'') -> a -> b -> c -> r'
infixr 9 $><^
($>^*) :: forall a b c d r' r''. (c -> r'' -> r') -> (a -> d -> r'') -> a -> b -> (c, d) -> r'
infixr 9 $>^*
($>^&) :: forall a b c r' r''. (c -> r'' -> r') -> (a -> c -> r'') -> a -> b -> c -> r'
infixr 9 $>^&
($>^>) :: forall a b c r' r''. (r'' -> r') -> (a -> c -> r'') -> a -> b -> c -> r'
infixr 9 $>^>
($>^<) :: forall a b c r' r''. (c -> r'' -> r') -> (a -> r'') -> a -> b -> c -> r'
infixr 9 $>^<
($>^^) :: forall a b c r' r''. (r'' -> r') -> (a -> r'') -> a -> b -> c -> r'
infixr 9 $>^^
($<**) :: forall a b c d e r' r''. (a -> b -> d -> r'' -> r') -> (c -> e -> r'') -> a -> (b, c) -> (d, e) -> r'
infixr 9 $<**
($<*&) :: forall a b c d r' r''. (a -> b -> d -> r'' -> r') -> (c -> d -> r'') -> a -> (b, c) -> d -> r'
infixr 9 $<*&
($<*>) :: forall a b c d r' r''. (a -> b -> r'' -> r') -> (c -> d -> r'') -> a -> (b, c) -> d -> r'
infixr 9 $<*>
($<*<) :: forall a b c d r' r''. (a -> b -> d -> r'' -> r') -> (c -> r'') -> a -> (b, c) -> d -> r'
infixr 9 $<*<
($<*^) :: forall a b c d r' r''. (a -> b -> r'' -> r') -> (c -> r'') -> a -> (b, c) -> d -> r'
infixr 9 $<*^
($<&*) :: forall a b c d r' r''. (a -> b -> c -> r'' -> r') -> (b -> d -> r'') -> a -> b -> (c, d) -> r'
infixr 9 $<&*
($<&&) :: forall a b c r' r''. (a -> b -> c -> r'' -> r') -> (b -> c -> r'') -> a -> b -> c -> r'
infixr 9 $<&&
($<&>) :: forall a b c r' r''. (a -> b -> r'' -> r') -> (b -> c -> r'') -> a -> b -> c -> r'
infixr 9 $<&>
($<&<) :: forall a b c r' r''. (a -> b -> c -> r'' -> r') -> (b -> r'') -> a -> b -> c -> r'
infixr 9 $<&<
($<&^) :: forall a b c r' r''. (a -> b -> r'' -> r') -> (b -> r'') -> a -> b -> c -> r'
infixr 9 $<&^
($<>*) :: forall a b c d r' r''. (a -> c -> r'' -> r') -> (b -> d -> r'') -> a -> b -> (c, d) -> r'
infixr 9 $<>*
($<>&) :: forall a b c r' r''. (a -> c -> r'' -> r') -> (b -> c -> r'') -> a -> b -> c -> r'
infixr 9 $<>&
($<>>) :: forall a b c r' r''. (a -> r'' -> r') -> (b -> c -> r'') -> a -> b -> c -> r'
infixr 9 $<>>
($<><) :: forall a b c r' r''. (a -> c -> r'' -> r') -> (b -> r'') -> a -> b -> c -> r'
infixr 9 $<><
($<>^) :: forall a b c r' r''. (a -> r'' -> r') -> (b -> r'') -> a -> b -> c -> r'
infixr 9 $<>^
($<<*) :: forall a b c d r' r''. (a -> b -> c -> r'' -> r') -> (d -> r'') -> a -> b -> (c, d) -> r'
infixr 9 $<<*
($<<&) :: forall a b c r' r''. (a -> b -> c -> r'' -> r') -> (c -> r'') -> a -> b -> c -> r'
infixr 9 $<<&
($<<>) :: forall a b c r' r''. (a -> b -> r'' -> r') -> (c -> r'') -> a -> b -> c -> r'
infixr 9 $<<>
($<<<) :: forall a b c r' r''. (a -> b -> c -> r'' -> r') -> r'' -> a -> b -> c -> r'
infixr 9 $<<<
($<<^) :: forall a b c r' r''. (a -> b -> r'' -> r') -> r'' -> a -> b -> c -> r'
infixr 9 $<<^
($<^*) :: forall a b c d r' r''. (a -> c -> r'' -> r') -> (d -> r'') -> a -> b -> (c, d) -> r'
infixr 9 $<^*
($<^&) :: forall a b c r' r''. (a -> c -> r'' -> r') -> (c -> r'') -> a -> b -> c -> r'
infixr 9 $<^&
($<^>) :: forall a b c r' r''. (a -> r'' -> r') -> (c -> r'') -> a -> b -> c -> r'
infixr 9 $<^>
($<^<) :: forall a b c r' r''. (a -> c -> r'' -> r') -> r'' -> a -> b -> c -> r'
infixr 9 $<^<
($<^^) :: forall a b c r' r''. (a -> r'' -> r') -> r'' -> a -> b -> c -> r'
infixr 9 $<^^
($^**) :: forall a b c d e r' r''. (b -> d -> r'' -> r') -> (c -> e -> r'') -> a -> (b, c) -> (d, e) -> r'
infixr 9 $^**
($^*&) :: forall a b c d r' r''. (b -> d -> r'' -> r') -> (c -> d -> r'') -> a -> (b, c) -> d -> r'
infixr 9 $^*&
($^*>) :: forall a b c d r' r''. (b -> r'' -> r') -> (c -> d -> r'') -> a -> (b, c) -> d -> r'
infixr 9 $^*>
($^*<) :: forall a b c d r' r''. (b -> d -> r'' -> r') -> (c -> r'') -> a -> (b, c) -> d -> r'
infixr 9 $^*<
($^*^) :: forall a b c d r' r''. (b -> r'' -> r') -> (c -> r'') -> a -> (b, c) -> d -> r'
infixr 9 $^*^
($^&*) :: forall a b c d r' r''. (b -> c -> r'' -> r') -> (b -> d -> r'') -> a -> b -> (c, d) -> r'
infixr 9 $^&*
($^&&) :: forall a b c r' r''. (b -> c -> r'' -> r') -> (b -> c -> r'') -> a -> b -> c -> r'
infixr 9 $^&&
($^&>) :: forall a b c r' r''. (b -> r'' -> r') -> (b -> c -> r'') -> a -> b -> c -> r'
infixr 9 $^&>
($^&<) :: forall a b c r' r''. (b -> c -> r'' -> r') -> (b -> r'') -> a -> b -> c -> r'
infixr 9 $^&<
($^&^) :: forall a b c r' r''. (b -> r'' -> r') -> (b -> r'') -> a -> b -> c -> r'
infixr 9 $^&^
($^>*) :: forall a b c d r' r''. (c -> r'' -> r') -> (b -> d -> r'') -> a -> b -> (c, d) -> r'
infixr 9 $^>*
($^>&) :: forall a b c r' r''. (c -> r'' -> r') -> (b -> c -> r'') -> a -> b -> c -> r'
infixr 9 $^>&
($^>>) :: forall a b c r' r''. (r'' -> r') -> (b -> c -> r'') -> a -> b -> c -> r'
infixr 9 $^>>
($^><) :: forall a b c r' r''. (c -> r'' -> r') -> (b -> r'') -> a -> b -> c -> r'
infixr 9 $^><
($^>^) :: forall a b c r' r''. (r'' -> r') -> (b -> r'') -> a -> b -> c -> r'
infixr 9 $^>^
($^<*) :: forall a b c d r' r''. (b -> c -> r'' -> r') -> (d -> r'') -> a -> b -> (c, d) -> r'
infixr 9 $^<*
($^<&) :: forall a b c r' r''. (b -> c -> r'' -> r') -> (c -> r'') -> a -> b -> c -> r'
infixr 9 $^<&
($^<>) :: forall a b c r' r''. (b -> r'' -> r') -> (c -> r'') -> a -> b -> c -> r'
infixr 9 $^<>
($^<<) :: forall a b c r' r''. (b -> c -> r'' -> r') -> r'' -> a -> b -> c -> r'
infixr 9 $^<<
($^<^) :: forall a b c r' r''. (b -> r'' -> r') -> r'' -> a -> b -> c -> r'
infixr 9 $^<^
($^^*) :: forall a b c d r' r''. (c -> r'' -> r') -> (d -> r'') -> a -> b -> (c, d) -> r'
infixr 9 $^^*
($^^&) :: forall a b c r' r''. (c -> r'' -> r') -> (c -> r'') -> a -> b -> c -> r'
infixr 9 $^^&
($^^>) :: forall a b c r' r''. (r'' -> r') -> (c -> r'') -> a -> b -> c -> r'
infixr 9 $^^>
($^^<) :: forall a b c r' r''. (c -> r'' -> r') -> r'' -> a -> b -> c -> r'
infixr 9 $^^<
($^^^) :: forall a b c r' r''. (r'' -> r') -> r'' -> a -> b -> c -> r'
infixr 9 $^^^
($**) :: forall a b c d r' r''. (a -> c -> r'' -> r') -> (b -> d -> r'') -> (a, b) -> (c, d) -> r'
infixr 9 $**
($*&) :: forall a b c r' r''. (a -> c -> r'' -> r') -> (b -> c -> r'') -> (a, b) -> c -> r'
infixr 9 $*&
($*>) :: forall a b c r' r''. (a -> r'' -> r') -> (b -> c -> r'') -> (a, b) -> c -> r'
infixr 9 $*>
($*<) :: forall a b c r' r''. (a -> c -> r'' -> r') -> (b -> r'') -> (a, b) -> c -> r'
infixr 9 $*<
($*^) :: forall a b c r' r''. (a -> r'' -> r') -> (b -> r'') -> (a, b) -> c -> r'
infixr 9 $*^
($&*) :: forall a b c r' r''. (a -> b -> r'' -> r') -> (a -> c -> r'') -> a -> (b, c) -> r'
infixr 9 $&*
($&&) :: forall a b r' r''. (a -> b -> r'' -> r') -> (a -> b -> r'') -> a -> b -> r'
infixr 9 $&&
($&>) :: forall a b r' r''. (a -> r'' -> r') -> (a -> b -> r'') -> a -> b -> r'
infixr 9 $&>
($&<) :: forall a b r' r''. (a -> b -> r'' -> r') -> (a -> r'') -> a -> b -> r'
infixr 9 $&<
($&^) :: forall a b r' r''. (a -> r'' -> r') -> (a -> r'') -> a -> b -> r'
infixr 9 $&^
($>*) :: forall a b c r' r''. (b -> r'' -> r') -> (a -> c -> r'') -> a -> (b, c) -> r'
infixr 9 $>*
($>&) :: forall a b r' r''. (b -> r'' -> r') -> (a -> b -> r'') -> a -> b -> r'
infixr 9 $>&
($>>) :: forall a b r' r''. (r'' -> r') -> (a -> b -> r'') -> a -> b -> r'
infixr 9 $>>
($><) :: forall a b r' r''. (b -> r'' -> r') -> (a -> r'') -> a -> b -> r'
infixr 9 $><
($>^) :: forall a b r' r''. (r'' -> r') -> (a -> r'') -> a -> b -> r'
infixr 9 $>^
($<*) :: forall a b c r' r''. (a -> b -> r'' -> r') -> (c -> r'') -> a -> (b, c) -> r'
infixr 9 $<*
($<&) :: forall a b r' r''. (a -> b -> r'' -> r') -> (b -> r'') -> a -> b -> r'
infixr 9 $<&
($<>) :: forall a b r' r''. (a -> r'' -> r') -> (b -> r'') -> a -> b -> r'
infixr 9 $<>
($<<) :: forall a b r' r''. (a -> b -> r'' -> r') -> r'' -> a -> b -> r'
infixr 9 $<<
($<^) :: forall a b r' r''. (a -> r'' -> r') -> r'' -> a -> b -> r'
infixr 9 $<^
($^*) :: forall a b c r' r''. (b -> r'' -> r') -> (c -> r'') -> a -> (b, c) -> r'
infixr 9 $^*
($^&) :: forall a b r' r''. (b -> r'' -> r') -> (b -> r'') -> a -> b -> r'
infixr 9 $^&
($^>) :: forall a b r' r''. (r'' -> r') -> (b -> r'') -> a -> b -> r'
infixr 9 $^>
($^<) :: forall a b r' r''. (b -> r'' -> r') -> r'' -> a -> b -> r'
infixr 9 $^<
($^^) :: forall a b r' r''. (r'' -> r') -> r'' -> a -> b -> r'
infixr 9 $^^
($*) :: forall a b r' r''. (a -> r'' -> r') -> (b -> r'') -> (a, b) -> r'
infixr 9 $*
($&) :: forall a r' r''. (a -> r'' -> r') -> (a -> r'') -> a -> r'
infixr 9 $&
($>) :: forall a r' r''. (r'' -> r') -> (a -> r'') -> a -> r'
infixr 9 $>
($<) :: forall a r' r''. (a -> r'' -> r') -> r'' -> a -> r'
infixr 9 $<
($^) :: forall a r' r''. (r'' -> r') -> r'' -> a -> r'
infixr 9 $^
(****) :: forall a b c d e f r' r''. (a -> c -> e -> r') -> (b -> d -> f -> r'') -> (a, b) -> (c, d) -> (e, f) -> (r', r'')
infixr 9 ****
(***&) :: forall a b c d e r' r''. (a -> c -> e -> r') -> (b -> d -> e -> r'') -> (a, b) -> (c, d) -> e -> (r', r'')
infixr 9 ***&
(***>) :: forall a b c d e r' r''. (a -> c -> r') -> (b -> d -> e -> r'') -> (a, b) -> (c, d) -> e -> (r', r'')
infixr 9 ***>
(***<) :: forall a b c d e r' r''. (a -> c -> e -> r') -> (b -> d -> r'') -> (a, b) -> (c, d) -> e -> (r', r'')
infixr 9 ***<
(***^) :: forall a b c d e r' r''. (a -> c -> r') -> (b -> d -> r'') -> (a, b) -> (c, d) -> e -> (r', r'')
infixr 9 ***^
(**&*) :: forall a b c d e r' r''. (a -> c -> d -> r') -> (b -> c -> e -> r'') -> (a, b) -> c -> (d, e) -> (r', r'')
infixr 9 **&*
(**&&) :: forall a b c d r' r''. (a -> c -> d -> r') -> (b -> c -> d -> r'') -> (a, b) -> c -> d -> (r', r'')
infixr 9 **&&
(**&>) :: forall a b c d r' r''. (a -> c -> r') -> (b -> c -> d -> r'') -> (a, b) -> c -> d -> (r', r'')
infixr 9 **&>
(**&<) :: forall a b c d r' r''. (a -> c -> d -> r') -> (b -> c -> r'') -> (a, b) -> c -> d -> (r', r'')
infixr 9 **&<
(**&^) :: forall a b c d r' r''. (a -> c -> r') -> (b -> c -> r'') -> (a, b) -> c -> d -> (r', r'')
infixr 9 **&^
(**>*) :: forall a b c d e r' r''. (a -> d -> r') -> (b -> c -> e -> r'') -> (a, b) -> c -> (d, e) -> (r', r'')
infixr 9 **>*
(**>&) :: forall a b c d r' r''. (a -> d -> r') -> (b -> c -> d -> r'') -> (a, b) -> c -> d -> (r', r'')
infixr 9 **>&
(**>>) :: forall a b c d r' r''. (a -> r') -> (b -> c -> d -> r'') -> (a, b) -> c -> d -> (r', r'')
infixr 9 **>>
(**><) :: forall a b c d r' r''. (a -> d -> r') -> (b -> c -> r'') -> (a, b) -> c -> d -> (r', r'')
infixr 9 **><
(**>^) :: forall a b c d r' r''. (a -> r') -> (b -> c -> r'') -> (a, b) -> c -> d -> (r', r'')
infixr 9 **>^
(**<*) :: forall a b c d e r' r''. (a -> c -> d -> r') -> (b -> e -> r'') -> (a, b) -> c -> (d, e) -> (r', r'')
infixr 9 **<*
(**<&) :: forall a b c d r' r''. (a -> c -> d -> r') -> (b -> d -> r'') -> (a, b) -> c -> d -> (r', r'')
infixr 9 **<&
(**<>) :: forall a b c d r' r''. (a -> c -> r') -> (b -> d -> r'') -> (a, b) -> c -> d -> (r', r'')
infixr 9 **<>
(**<<) :: forall a b c d r' r''. (a -> c -> d -> r') -> (b -> r'') -> (a, b) -> c -> d -> (r', r'')
infixr 9 **<<
(**<^) :: forall a b c d r' r''. (a -> c -> r') -> (b -> r'') -> (a, b) -> c -> d -> (r', r'')
infixr 9 **<^
(**^*) :: forall a b c d e r' r''. (a -> d -> r') -> (b -> e -> r'') -> (a, b) -> c -> (d, e) -> (r', r'')
infixr 9 **^*
(**^&) :: forall a b c d r' r''. (a -> d -> r') -> (b -> d -> r'') -> (a, b) -> c -> d -> (r', r'')
infixr 9 **^&
(**^>) :: forall a b c d r' r''. (a -> r') -> (b -> d -> r'') -> (a, b) -> c -> d -> (r', r'')
infixr 9 **^>
(**^<) :: forall a b c d r' r''. (a -> d -> r') -> (b -> r'') -> (a, b) -> c -> d -> (r', r'')
infixr 9 **^<
(**^^) :: forall a b c d r' r''. (a -> r') -> (b -> r'') -> (a, b) -> c -> d -> (r', r'')
infixr 9 **^^
(*&**) :: forall a b c d e r' r''. (a -> b -> d -> r') -> (a -> c -> e -> r'') -> a -> (b, c) -> (d, e) -> (r', r'')
infixr 9 *&**
(*&*&) :: forall a b c d r' r''. (a -> b -> d -> r') -> (a -> c -> d -> r'') -> a -> (b, c) -> d -> (r', r'')
infixr 9 *&*&
(*&*>) :: forall a b c d r' r''. (a -> b -> r') -> (a -> c -> d -> r'') -> a -> (b, c) -> d -> (r', r'')
infixr 9 *&*>
(*&*<) :: forall a b c d r' r''. (a -> b -> d -> r') -> (a -> c -> r'') -> a -> (b, c) -> d -> (r', r'')
infixr 9 *&*<
(*&*^) :: forall a b c d r' r''. (a -> b -> r') -> (a -> c -> r'') -> a -> (b, c) -> d -> (r', r'')
infixr 9 *&*^
(*&&*) :: forall a b c d r' r''. (a -> b -> c -> r') -> (a -> b -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
infixr 9 *&&*
(*&&&) :: forall a b c r' r''. (a -> b -> c -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *&&&
(*&&>) :: forall a b c r' r''. (a -> b -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *&&>
(*&&<) :: forall a b c r' r''. (a -> b -> c -> r') -> (a -> b -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *&&<
(*&&^) :: forall a b c r' r''. (a -> b -> r') -> (a -> b -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *&&^
(*&>*) :: forall a b c d r' r''. (a -> c -> r') -> (a -> b -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
infixr 9 *&>*
(*&>&) :: forall a b c r' r''. (a -> c -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *&>&
(*&>>) :: forall a b c r' r''. (a -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *&>>
(*&><) :: forall a b c r' r''. (a -> c -> r') -> (a -> b -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *&><
(*&>^) :: forall a b c r' r''. (a -> r') -> (a -> b -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *&>^
(*&<*) :: forall a b c d r' r''. (a -> b -> c -> r') -> (a -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
infixr 9 *&<*
(*&<&) :: forall a b c r' r''. (a -> b -> c -> r') -> (a -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *&<&
(*&<>) :: forall a b c r' r''. (a -> b -> r') -> (a -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *&<>
(*&<<) :: forall a b c r' r''. (a -> b -> c -> r') -> (a -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *&<<
(*&<^) :: forall a b c r' r''. (a -> b -> r') -> (a -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *&<^
(*&^*) :: forall a b c d r' r''. (a -> c -> r') -> (a -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
infixr 9 *&^*
(*&^&) :: forall a b c r' r''. (a -> c -> r') -> (a -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *&^&
(*&^>) :: forall a b c r' r''. (a -> r') -> (a -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *&^>
(*&^<) :: forall a b c r' r''. (a -> c -> r') -> (a -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *&^<
(*&^^) :: forall a b c r' r''. (a -> r') -> (a -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *&^^
(*>**) :: forall a b c d e r' r''. (b -> d -> r') -> (a -> c -> e -> r'') -> a -> (b, c) -> (d, e) -> (r', r'')
infixr 9 *>**
(*>*&) :: forall a b c d r' r''. (b -> d -> r') -> (a -> c -> d -> r'') -> a -> (b, c) -> d -> (r', r'')
infixr 9 *>*&
(*>*>) :: forall a b c d r' r''. (b -> r') -> (a -> c -> d -> r'') -> a -> (b, c) -> d -> (r', r'')
infixr 9 *>*>
(*>*<) :: forall a b c d r' r''. (b -> d -> r') -> (a -> c -> r'') -> a -> (b, c) -> d -> (r', r'')
infixr 9 *>*<
(*>*^) :: forall a b c d r' r''. (b -> r') -> (a -> c -> r'') -> a -> (b, c) -> d -> (r', r'')
infixr 9 *>*^
(*>&*) :: forall a b c d r' r''. (b -> c -> r') -> (a -> b -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
infixr 9 *>&*
(*>&&) :: forall a b c r' r''. (b -> c -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *>&&
(*>&>) :: forall a b c r' r''. (b -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *>&>
(*>&<) :: forall a b c r' r''. (b -> c -> r') -> (a -> b -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *>&<
(*>&^) :: forall a b c r' r''. (b -> r') -> (a -> b -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *>&^
(*>>*) :: forall a b c d r' r''. (c -> r') -> (a -> b -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
infixr 9 *>>*
(*>>&) :: forall a b c r' r''. (c -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *>>&
(*>>>) :: forall a b c r' r''. r' -> (a -> b -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *>>>
(*>><) :: forall a b c r' r''. (c -> r') -> (a -> b -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *>><
(*>>^) :: forall a b c r' r''. r' -> (a -> b -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *>>^
(*><*) :: forall a b c d r' r''. (b -> c -> r') -> (a -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
infixr 9 *><*
(*><&) :: forall a b c r' r''. (b -> c -> r') -> (a -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *><&
(*><>) :: forall a b c r' r''. (b -> r') -> (a -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *><>
(*><<) :: forall a b c r' r''. (b -> c -> r') -> (a -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *><<
(*><^) :: forall a b c r' r''. (b -> r') -> (a -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *><^
(*>^*) :: forall a b c d r' r''. (c -> r') -> (a -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
infixr 9 *>^*
(*>^&) :: forall a b c r' r''. (c -> r') -> (a -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *>^&
(*>^>) :: forall a b c r' r''. r' -> (a -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *>^>
(*>^<) :: forall a b c r' r''. (c -> r') -> (a -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *>^<
(*>^^) :: forall a b c r' r''. r' -> (a -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *>^^
(*<**) :: forall a b c d e r' r''. (a -> b -> d -> r') -> (c -> e -> r'') -> a -> (b, c) -> (d, e) -> (r', r'')
infixr 9 *<**
(*<*&) :: forall a b c d r' r''. (a -> b -> d -> r') -> (c -> d -> r'') -> a -> (b, c) -> d -> (r', r'')
infixr 9 *<*&
(*<*>) :: forall a b c d r' r''. (a -> b -> r') -> (c -> d -> r'') -> a -> (b, c) -> d -> (r', r'')
infixr 9 *<*>
(*<*<) :: forall a b c d r' r''. (a -> b -> d -> r') -> (c -> r'') -> a -> (b, c) -> d -> (r', r'')
infixr 9 *<*<
(*<*^) :: forall a b c d r' r''. (a -> b -> r') -> (c -> r'') -> a -> (b, c) -> d -> (r', r'')
infixr 9 *<*^
(*<&*) :: forall a b c d r' r''. (a -> b -> c -> r') -> (b -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
infixr 9 *<&*
(*<&&) :: forall a b c r' r''. (a -> b -> c -> r') -> (b -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *<&&
(*<&>) :: forall a b c r' r''. (a -> b -> r') -> (b -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *<&>
(*<&<) :: forall a b c r' r''. (a -> b -> c -> r') -> (b -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *<&<
(*<&^) :: forall a b c r' r''. (a -> b -> r') -> (b -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *<&^
(*<>*) :: forall a b c d r' r''. (a -> c -> r') -> (b -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
infixr 9 *<>*
(*<>&) :: forall a b c r' r''. (a -> c -> r') -> (b -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *<>&
(*<>>) :: forall a b c r' r''. (a -> r') -> (b -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *<>>
(*<><) :: forall a b c r' r''. (a -> c -> r') -> (b -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *<><
(*<>^) :: forall a b c r' r''. (a -> r') -> (b -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *<>^
(*<<*) :: forall a b c d r' r''. (a -> b -> c -> r') -> (d -> r'') -> a -> b -> (c, d) -> (r', r'')
infixr 9 *<<*
(*<<&) :: forall a b c r' r''. (a -> b -> c -> r') -> (c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *<<&
(*<<>) :: forall a b c r' r''. (a -> b -> r') -> (c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *<<>
(*<<<) :: forall a b c r' r''. (a -> b -> c -> r') -> r'' -> a -> b -> c -> (r', r'')
infixr 9 *<<<
(*<<^) :: forall a b c r' r''. (a -> b -> r') -> r'' -> a -> b -> c -> (r', r'')
infixr 9 *<<^
(*<^*) :: forall a b c d r' r''. (a -> c -> r') -> (d -> r'') -> a -> b -> (c, d) -> (r', r'')
infixr 9 *<^*
(*<^&) :: forall a b c r' r''. (a -> c -> r') -> (c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *<^&
(*<^>) :: forall a b c r' r''. (a -> r') -> (c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *<^>
(*<^<) :: forall a b c r' r''. (a -> c -> r') -> r'' -> a -> b -> c -> (r', r'')
infixr 9 *<^<
(*<^^) :: forall a b c r' r''. (a -> r') -> r'' -> a -> b -> c -> (r', r'')
infixr 9 *<^^
(*^**) :: forall a b c d e r' r''. (b -> d -> r') -> (c -> e -> r'') -> a -> (b, c) -> (d, e) -> (r', r'')
infixr 9 *^**
(*^*&) :: forall a b c d r' r''. (b -> d -> r') -> (c -> d -> r'') -> a -> (b, c) -> d -> (r', r'')
infixr 9 *^*&
(*^*>) :: forall a b c d r' r''. (b -> r') -> (c -> d -> r'') -> a -> (b, c) -> d -> (r', r'')
infixr 9 *^*>
(*^*<) :: forall a b c d r' r''. (b -> d -> r') -> (c -> r'') -> a -> (b, c) -> d -> (r', r'')
infixr 9 *^*<
(*^*^) :: forall a b c d r' r''. (b -> r') -> (c -> r'') -> a -> (b, c) -> d -> (r', r'')
infixr 9 *^*^
(*^&*) :: forall a b c d r' r''. (b -> c -> r') -> (b -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
infixr 9 *^&*
(*^&&) :: forall a b c r' r''. (b -> c -> r') -> (b -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *^&&
(*^&>) :: forall a b c r' r''. (b -> r') -> (b -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *^&>
(*^&<) :: forall a b c r' r''. (b -> c -> r') -> (b -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *^&<
(*^&^) :: forall a b c r' r''. (b -> r') -> (b -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *^&^
(*^>*) :: forall a b c d r' r''. (c -> r') -> (b -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
infixr 9 *^>*
(*^>&) :: forall a b c r' r''. (c -> r') -> (b -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *^>&
(*^>>) :: forall a b c r' r''. r' -> (b -> c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *^>>
(*^><) :: forall a b c r' r''. (c -> r') -> (b -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *^><
(*^>^) :: forall a b c r' r''. r' -> (b -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *^>^
(*^<*) :: forall a b c d r' r''. (b -> c -> r') -> (d -> r'') -> a -> b -> (c, d) -> (r', r'')
infixr 9 *^<*
(*^<&) :: forall a b c r' r''. (b -> c -> r') -> (c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *^<&
(*^<>) :: forall a b c r' r''. (b -> r') -> (c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *^<>
(*^<<) :: forall a b c r' r''. (b -> c -> r') -> r'' -> a -> b -> c -> (r', r'')
infixr 9 *^<<
(*^<^) :: forall a b c r' r''. (b -> r') -> r'' -> a -> b -> c -> (r', r'')
infixr 9 *^<^
(*^^*) :: forall a b c d r' r''. (c -> r') -> (d -> r'') -> a -> b -> (c, d) -> (r', r'')
infixr 9 *^^*
(*^^&) :: forall a b c r' r''. (c -> r') -> (c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *^^&
(*^^>) :: forall a b c r' r''. r' -> (c -> r'') -> a -> b -> c -> (r', r'')
infixr 9 *^^>
(*^^<) :: forall a b c r' r''. (c -> r') -> r'' -> a -> b -> c -> (r', r'')
infixr 9 *^^<
(*^^^) :: forall a b c r' r''. r' -> r'' -> a -> b -> c -> (r', r'')
infixr 9 *^^^
(***) :: forall a b c d r' r''. (a -> c -> r') -> (b -> d -> r'') -> (a, b) -> (c, d) -> (r', r'')
infixr 9 ***
(**&) :: forall a b c r' r''. (a -> c -> r') -> (b -> c -> r'') -> (a, b) -> c -> (r', r'')
infixr 9 **&
(**>) :: forall a b c r' r''. (a -> r') -> (b -> c -> r'') -> (a, b) -> c -> (r', r'')
infixr 9 **>
(**<) :: forall a b c r' r''. (a -> c -> r') -> (b -> r'') -> (a, b) -> c -> (r', r'')
infixr 9 **<
(**^) :: forall a b c r' r''. (a -> r') -> (b -> r'') -> (a, b) -> c -> (r', r'')
infixr 9 **^
(*&*) :: forall a b c r' r''. (a -> b -> r') -> (a -> c -> r'') -> a -> (b, c) -> (r', r'')
infixr 9 *&*
(*&&) :: forall a b r' r''. (a -> b -> r') -> (a -> b -> r'') -> a -> b -> (r', r'')
infixr 9 *&&
(*&>) :: forall a b r' r''. (a -> r') -> (a -> b -> r'') -> a -> b -> (r', r'')
infixr 9 *&>
(*&<) :: forall a b r' r''. (a -> b -> r') -> (a -> r'') -> a -> b -> (r', r'')
infixr 9 *&<
(*&^) :: forall a b r' r''. (a -> r') -> (a -> r'') -> a -> b -> (r', r'')
infixr 9 *&^
(*>*) :: forall a b c r' r''. (b -> r') -> (a -> c -> r'') -> a -> (b, c) -> (r', r'')
infixr 9 *>*
(*>&) :: forall a b r' r''. (b -> r') -> (a -> b -> r'') -> a -> b -> (r', r'')
infixr 9 *>&
(*>>) :: forall a b r' r''. r' -> (a -> b -> r'') -> a -> b -> (r', r'')
infixr 9 *>>
(*><) :: forall a b r' r''. (b -> r') -> (a -> r'') -> a -> b -> (r', r'')
infixr 9 *><
(*>^) :: forall a b r' r''. r' -> (a -> r'') -> a -> b -> (r', r'')
infixr 9 *>^
(*<*) :: forall a b c r' r''. (a -> b -> r') -> (c -> r'') -> a -> (b, c) -> (r', r'')
infixr 9 *<*
(*<&) :: forall a b r' r''. (a -> b -> r') -> (b -> r'') -> a -> b -> (r', r'')
infixr 9 *<&
(*<>) :: forall a b r' r''. (a -> r') -> (b -> r'') -> a -> b -> (r', r'')
infixr 9 *<>
(*<<) :: forall a b r' r''. (a -> b -> r') -> r'' -> a -> b -> (r', r'')
infixr 9 *<<
(*<^) :: forall a b r' r''. (a -> r') -> r'' -> a -> b -> (r', r'')
infixr 9 *<^
(*^*) :: forall a b c r' r''. (b -> r') -> (c -> r'') -> a -> (b, c) -> (r', r'')
infixr 9 *^*
(*^&) :: forall a b r' r''. (b -> r') -> (b -> r'') -> a -> b -> (r', r'')
infixr 9 *^&
(*^>) :: forall a b r' r''. r' -> (b -> r'') -> a -> b -> (r', r'')
infixr 9 *^>
(*^<) :: forall a b r' r''. (b -> r') -> r'' -> a -> b -> (r', r'')
infixr 9 *^<
(*^^) :: forall a b r' r''. r' -> r'' -> a -> b -> (r', r'')
infixr 9 *^^
(**) :: forall a b r' r''. (a -> r') -> (b -> r'') -> (a, b) -> (r', r'')
infixr 9 **
(*&) :: forall a r' r''. (a -> r') -> (a -> r'') -> a -> (r', r'')
infixr 9 *&
(*>) :: forall a r' r''. r' -> (a -> r'') -> a -> (r', r'')
infixr 9 *>
(*<) :: forall a r' r''. (a -> r') -> r'' -> a -> (r', r'')
infixr 9 *<
(*^) :: forall a r' r''. r' -> r'' -> a -> (r', r'')
infixr 9 *^