-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Pointless plumbing combinators
--
-- Pointless plumbing combinators
@package plumbers
@version 0.0.2
-- | 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, tuplesT, arrowsT :: [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
(>=***) :: Monad m => (a -> c -> e -> m r'') -> (b -> d -> f -> r'' -> m r') -> (a, b) -> (c, d) -> (e, f) -> m r'
(>=**&) :: Monad m => (a -> c -> e -> m r'') -> (b -> d -> e -> r'' -> m r') -> (a, b) -> (c, d) -> e -> m r'
(>=**>) :: Monad m => (a -> c -> m r'') -> (b -> d -> e -> r'' -> m r') -> (a, b) -> (c, d) -> e -> m r'
(>=**<) :: Monad m => (a -> c -> e -> m r'') -> (b -> d -> r'' -> m r') -> (a, b) -> (c, d) -> e -> m r'
(>=**^) :: Monad m => (a -> c -> m r'') -> (b -> d -> r'' -> m r') -> (a, b) -> (c, d) -> e -> m r'
(>=*&*) :: Monad m => (a -> c -> d -> m r'') -> (b -> c -> e -> r'' -> m r') -> (a, b) -> c -> (d, e) -> m r'
(>=*&&) :: Monad m => (a -> c -> d -> m r'') -> (b -> c -> d -> r'' -> m r') -> (a, b) -> c -> d -> m r'
(>=*&>) :: Monad m => (a -> c -> m r'') -> (b -> c -> d -> r'' -> m r') -> (a, b) -> c -> d -> m r'
(>=*&<) :: Monad m => (a -> c -> d -> m r'') -> (b -> c -> r'' -> m r') -> (a, b) -> c -> d -> m r'
(>=*&^) :: Monad m => (a -> c -> m r'') -> (b -> c -> r'' -> m r') -> (a, b) -> c -> d -> m r'
(>=*>*) :: Monad m => (a -> d -> m r'') -> (b -> c -> e -> r'' -> m r') -> (a, b) -> c -> (d, e) -> m r'
(>=*>&) :: Monad m => (a -> d -> m r'') -> (b -> c -> d -> r'' -> m r') -> (a, b) -> c -> d -> m r'
(>=*>>) :: Monad m => (a -> m r'') -> (b -> c -> d -> r'' -> m r') -> (a, b) -> c -> d -> m r'
(>=*><) :: Monad m => (a -> d -> m r'') -> (b -> c -> r'' -> m r') -> (a, b) -> c -> d -> m r'
(>=*>^) :: Monad m => (a -> m r'') -> (b -> c -> r'' -> m r') -> (a, b) -> c -> d -> m r'
(>=*<*) :: Monad m => (a -> c -> d -> m r'') -> (b -> e -> r'' -> m r') -> (a, b) -> c -> (d, e) -> m r'
(>=*<&) :: Monad m => (a -> c -> d -> m r'') -> (b -> d -> r'' -> m r') -> (a, b) -> c -> d -> m r'
(>=*<>) :: Monad m => (a -> c -> m r'') -> (b -> d -> r'' -> m r') -> (a, b) -> c -> d -> m r'
(>=*<<) :: Monad m => (a -> c -> d -> m r'') -> (b -> r'' -> m r') -> (a, b) -> c -> d -> m r'
(>=*<^) :: Monad m => (a -> c -> m r'') -> (b -> r'' -> m r') -> (a, b) -> c -> d -> m r'
(>=*^*) :: Monad m => (a -> d -> m r'') -> (b -> e -> r'' -> m r') -> (a, b) -> c -> (d, e) -> m r'
(>=*^&) :: Monad m => (a -> d -> m r'') -> (b -> d -> r'' -> m r') -> (a, b) -> c -> d -> m r'
(>=*^>) :: Monad m => (a -> m r'') -> (b -> d -> r'' -> m r') -> (a, b) -> c -> d -> m r'
(>=*^<) :: Monad m => (a -> d -> m r'') -> (b -> r'' -> m r') -> (a, b) -> c -> d -> m r'
(>=*^^) :: Monad m => (a -> m r'') -> (b -> r'' -> m r') -> (a, b) -> c -> d -> m r'
(>=&**) :: Monad m => (a -> b -> d -> m r'') -> (a -> c -> e -> r'' -> m r') -> a -> (b, c) -> (d, e) -> m r'
(>=&*&) :: Monad m => (a -> b -> d -> m r'') -> (a -> c -> d -> r'' -> m r') -> a -> (b, c) -> d -> m r'
(>=&*>) :: Monad m => (a -> b -> m r'') -> (a -> c -> d -> r'' -> m r') -> a -> (b, c) -> d -> m r'
(>=&*<) :: Monad m => (a -> b -> d -> m r'') -> (a -> c -> r'' -> m r') -> a -> (b, c) -> d -> m r'
(>=&*^) :: Monad m => (a -> b -> m r'') -> (a -> c -> r'' -> m r') -> a -> (b, c) -> d -> m r'
(>=&&*) :: Monad m => (a -> b -> c -> m r'') -> (a -> b -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
(>=&&&) :: Monad m => (a -> b -> c -> m r'') -> (a -> b -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=&&>) :: Monad m => (a -> b -> m r'') -> (a -> b -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=&&<) :: Monad m => (a -> b -> c -> m r'') -> (a -> b -> r'' -> m r') -> a -> b -> c -> m r'
(>=&&^) :: Monad m => (a -> b -> m r'') -> (a -> b -> r'' -> m r') -> a -> b -> c -> m r'
(>=&>*) :: Monad m => (a -> c -> m r'') -> (a -> b -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
(>=&>&) :: Monad m => (a -> c -> m r'') -> (a -> b -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=&>>) :: Monad m => (a -> m r'') -> (a -> b -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=&><) :: Monad m => (a -> c -> m r'') -> (a -> b -> r'' -> m r') -> a -> b -> c -> m r'
(>=&>^) :: Monad m => (a -> m r'') -> (a -> b -> r'' -> m r') -> a -> b -> c -> m r'
(>=&<*) :: Monad m => (a -> b -> c -> m r'') -> (a -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
(>=&<&) :: Monad m => (a -> b -> c -> m r'') -> (a -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=&<>) :: Monad m => (a -> b -> m r'') -> (a -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=&<<) :: Monad m => (a -> b -> c -> m r'') -> (a -> r'' -> m r') -> a -> b -> c -> m r'
(>=&<^) :: Monad m => (a -> b -> m r'') -> (a -> r'' -> m r') -> a -> b -> c -> m r'
(>=&^*) :: Monad m => (a -> c -> m r'') -> (a -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
(>=&^&) :: Monad m => (a -> c -> m r'') -> (a -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=&^>) :: Monad m => (a -> m r'') -> (a -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=&^<) :: Monad m => (a -> c -> m r'') -> (a -> r'' -> m r') -> a -> b -> c -> m r'
(>=&^^) :: Monad m => (a -> m r'') -> (a -> r'' -> m r') -> a -> b -> c -> m r'
(>=>**) :: Monad m => (b -> d -> m r'') -> (a -> c -> e -> r'' -> m r') -> a -> (b, c) -> (d, e) -> m r'
(>=>*&) :: Monad m => (b -> d -> m r'') -> (a -> c -> d -> r'' -> m r') -> a -> (b, c) -> d -> m r'
(>=>*>) :: Monad m => (b -> m r'') -> (a -> c -> d -> r'' -> m r') -> a -> (b, c) -> d -> m r'
(>=>*<) :: Monad m => (b -> d -> m r'') -> (a -> c -> r'' -> m r') -> a -> (b, c) -> d -> m r'
(>=>*^) :: Monad m => (b -> m r'') -> (a -> c -> r'' -> m r') -> a -> (b, c) -> d -> m r'
(>=>&*) :: Monad m => (b -> c -> m r'') -> (a -> b -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
(>=>&&) :: Monad m => (b -> c -> m r'') -> (a -> b -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=>&>) :: Monad m => (b -> m r'') -> (a -> b -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=>&<) :: Monad m => (b -> c -> m r'') -> (a -> b -> r'' -> m r') -> a -> b -> c -> m r'
(>=>&^) :: Monad m => (b -> m r'') -> (a -> b -> r'' -> m r') -> a -> b -> c -> m r'
(>=>>*) :: Monad m => (c -> m r'') -> (a -> b -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
(>=>>&) :: Monad m => (c -> m r'') -> (a -> b -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=>>>) :: Monad m => m r'' -> (a -> b -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=>><) :: Monad m => (c -> m r'') -> (a -> b -> r'' -> m r') -> a -> b -> c -> m r'
(>=>>^) :: Monad m => m r'' -> (a -> b -> r'' -> m r') -> a -> b -> c -> m r'
(>=><*) :: Monad m => (b -> c -> m r'') -> (a -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
(>=><&) :: Monad m => (b -> c -> m r'') -> (a -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=><>) :: Monad m => (b -> m r'') -> (a -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=><<) :: Monad m => (b -> c -> m r'') -> (a -> r'' -> m r') -> a -> b -> c -> m r'
(>=><^) :: Monad m => (b -> m r'') -> (a -> r'' -> m r') -> a -> b -> c -> m r'
(>=>^*) :: Monad m => (c -> m r'') -> (a -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
(>=>^&) :: Monad m => (c -> m r'') -> (a -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=>^>) :: Monad m => m r'' -> (a -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=>^<) :: Monad m => (c -> m r'') -> (a -> r'' -> m r') -> a -> b -> c -> m r'
(>=>^^) :: Monad m => m r'' -> (a -> r'' -> m r') -> a -> b -> c -> m r'
(>=<**) :: Monad m => (a -> b -> d -> m r'') -> (c -> e -> r'' -> m r') -> a -> (b, c) -> (d, e) -> m r'
(>=<*&) :: Monad m => (a -> b -> d -> m r'') -> (c -> d -> r'' -> m r') -> a -> (b, c) -> d -> m r'
(>=<*>) :: Monad m => (a -> b -> m r'') -> (c -> d -> r'' -> m r') -> a -> (b, c) -> d -> m r'
(>=<*<) :: Monad m => (a -> b -> d -> m r'') -> (c -> r'' -> m r') -> a -> (b, c) -> d -> m r'
(>=<*^) :: Monad m => (a -> b -> m r'') -> (c -> r'' -> m r') -> a -> (b, c) -> d -> m r'
(>=<&*) :: Monad m => (a -> b -> c -> m r'') -> (b -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
(>=<&&) :: Monad m => (a -> b -> c -> m r'') -> (b -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=<&>) :: Monad m => (a -> b -> m r'') -> (b -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=<&<) :: Monad m => (a -> b -> c -> m r'') -> (b -> r'' -> m r') -> a -> b -> c -> m r'
(>=<&^) :: Monad m => (a -> b -> m r'') -> (b -> r'' -> m r') -> a -> b -> c -> m r'
(>=<>*) :: Monad m => (a -> c -> m r'') -> (b -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
(>=<>&) :: Monad m => (a -> c -> m r'') -> (b -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=<>>) :: Monad m => (a -> m r'') -> (b -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=<><) :: Monad m => (a -> c -> m r'') -> (b -> r'' -> m r') -> a -> b -> c -> m r'
(>=<>^) :: Monad m => (a -> m r'') -> (b -> r'' -> m r') -> a -> b -> c -> m r'
(>=<<*) :: Monad m => (a -> b -> c -> m r'') -> (d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
(>=<<&) :: Monad m => (a -> b -> c -> m r'') -> (c -> r'' -> m r') -> a -> b -> c -> m r'
(>=<<>) :: Monad m => (a -> b -> m r'') -> (c -> r'' -> m r') -> a -> b -> c -> m r'
(>=<<<) :: Monad m => (a -> b -> c -> m r'') -> (r'' -> m r') -> a -> b -> c -> m r'
(>=<<^) :: Monad m => (a -> b -> m r'') -> (r'' -> m r') -> a -> b -> c -> m r'
(>=<^*) :: Monad m => (a -> c -> m r'') -> (d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
(>=<^&) :: Monad m => (a -> c -> m r'') -> (c -> r'' -> m r') -> a -> b -> c -> m r'
(>=<^>) :: Monad m => (a -> m r'') -> (c -> r'' -> m r') -> a -> b -> c -> m r'
(>=<^<) :: Monad m => (a -> c -> m r'') -> (r'' -> m r') -> a -> b -> c -> m r'
(>=<^^) :: Monad m => (a -> m r'') -> (r'' -> m r') -> a -> b -> c -> m r'
(>=^**) :: Monad m => (b -> d -> m r'') -> (c -> e -> r'' -> m r') -> a -> (b, c) -> (d, e) -> m r'
(>=^*&) :: Monad m => (b -> d -> m r'') -> (c -> d -> r'' -> m r') -> a -> (b, c) -> d -> m r'
(>=^*>) :: Monad m => (b -> m r'') -> (c -> d -> r'' -> m r') -> a -> (b, c) -> d -> m r'
(>=^*<) :: Monad m => (b -> d -> m r'') -> (c -> r'' -> m r') -> a -> (b, c) -> d -> m r'
(>=^*^) :: Monad m => (b -> m r'') -> (c -> r'' -> m r') -> a -> (b, c) -> d -> m r'
(>=^&*) :: Monad m => (b -> c -> m r'') -> (b -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
(>=^&&) :: Monad m => (b -> c -> m r'') -> (b -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=^&>) :: Monad m => (b -> m r'') -> (b -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=^&<) :: Monad m => (b -> c -> m r'') -> (b -> r'' -> m r') -> a -> b -> c -> m r'
(>=^&^) :: Monad m => (b -> m r'') -> (b -> r'' -> m r') -> a -> b -> c -> m r'
(>=^>*) :: Monad m => (c -> m r'') -> (b -> d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
(>=^>&) :: Monad m => (c -> m r'') -> (b -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=^>>) :: Monad m => m r'' -> (b -> c -> r'' -> m r') -> a -> b -> c -> m r'
(>=^><) :: Monad m => (c -> m r'') -> (b -> r'' -> m r') -> a -> b -> c -> m r'
(>=^>^) :: Monad m => m r'' -> (b -> r'' -> m r') -> a -> b -> c -> m r'
(>=^<*) :: Monad m => (b -> c -> m r'') -> (d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
(>=^<&) :: Monad m => (b -> c -> m r'') -> (c -> r'' -> m r') -> a -> b -> c -> m r'
(>=^<>) :: Monad m => (b -> m r'') -> (c -> r'' -> m r') -> a -> b -> c -> m r'
(>=^<<) :: Monad m => (b -> c -> m r'') -> (r'' -> m r') -> a -> b -> c -> m r'
(>=^<^) :: Monad m => (b -> m r'') -> (r'' -> m r') -> a -> b -> c -> m r'
(>=^^*) :: Monad m => (c -> m r'') -> (d -> r'' -> m r') -> a -> b -> (c, d) -> m r'
(>=^^&) :: Monad m => (c -> m r'') -> (c -> r'' -> m r') -> a -> b -> c -> m r'
(>=^^>) :: Monad m => m r'' -> (c -> r'' -> m r') -> a -> b -> c -> m r'
(>=^^<) :: Monad m => (c -> m r'') -> (r'' -> m r') -> a -> b -> c -> m r'
(>=^^^) :: Monad m => m r'' -> (r'' -> m r') -> a -> b -> c -> m r'
(>=**) :: Monad m => (a -> c -> m r'') -> (b -> d -> r'' -> m r') -> (a, b) -> (c, d) -> m r'
(>=*&) :: Monad m => (a -> c -> m r'') -> (b -> c -> r'' -> m r') -> (a, b) -> c -> m r'
(>=*>) :: Monad m => (a -> m r'') -> (b -> c -> r'' -> m r') -> (a, b) -> c -> m r'
(>=*<) :: Monad m => (a -> c -> m r'') -> (b -> r'' -> m r') -> (a, b) -> c -> m r'
(>=*^) :: Monad m => (a -> m r'') -> (b -> r'' -> m r') -> (a, b) -> c -> m r'
(>=&*) :: Monad m => (a -> b -> m r'') -> (a -> c -> r'' -> m r') -> a -> (b, c) -> m r'
(>=&&) :: Monad m => (a -> b -> m r'') -> (a -> b -> r'' -> m r') -> a -> b -> m r'
(>=&>) :: Monad m => (a -> m r'') -> (a -> b -> r'' -> m r') -> a -> b -> m r'
(>=&<) :: Monad m => (a -> b -> m r'') -> (a -> r'' -> m r') -> a -> b -> m r'
(>=&^) :: Monad m => (a -> m r'') -> (a -> r'' -> m r') -> a -> b -> m r'
(>=>*) :: Monad m => (b -> m r'') -> (a -> c -> r'' -> m r') -> a -> (b, c) -> m r'
(>=>&) :: Monad m => (b -> m r'') -> (a -> b -> r'' -> m r') -> a -> b -> m r'
(>=>>) :: Monad m => m r'' -> (a -> b -> r'' -> m r') -> a -> b -> m r'
(>=><) :: Monad m => (b -> m r'') -> (a -> r'' -> m r') -> a -> b -> m r'
(>=>^) :: Monad m => m r'' -> (a -> r'' -> m r') -> a -> b -> m r'
(>=<*) :: Monad m => (a -> b -> m r'') -> (c -> r'' -> m r') -> a -> (b, c) -> m r'
(>=<&) :: Monad m => (a -> b -> m r'') -> (b -> r'' -> m r') -> a -> b -> m r'
(>=<>) :: Monad m => (a -> m r'') -> (b -> r'' -> m r') -> a -> b -> m r'
(>=<<) :: Monad m => (a -> b -> m r'') -> (r'' -> m r') -> a -> b -> m r'
(>=<^) :: Monad m => (a -> m r'') -> (r'' -> m r') -> a -> b -> m r'
(>=^*) :: Monad m => (b -> m r'') -> (c -> r'' -> m r') -> a -> (b, c) -> m r'
(>=^&) :: Monad m => (b -> m r'') -> (b -> r'' -> m r') -> a -> b -> m r'
(>=^>) :: Monad m => m r'' -> (b -> r'' -> m r') -> a -> b -> m r'
(>=^<) :: Monad m => (b -> m r'') -> (r'' -> m r') -> a -> b -> m r'
(>=^^) :: Monad m => m r'' -> (r'' -> m r') -> a -> b -> m r'
(>=*) :: Monad m => (a -> m r'') -> (b -> r'' -> m r') -> (a, b) -> m r'
(>=&) :: Monad m => (a -> m r'') -> (a -> r'' -> m r') -> a -> m r'
(>=>) :: Monad m => m r'' -> (a -> r'' -> m r') -> a -> m r'
(>=<) :: Monad m => (a -> m r'') -> (r'' -> m r') -> a -> m r'
(>=^) :: Monad m => m r'' -> (r'' -> m r') -> a -> m r'
(<=***) :: Monad m => (a -> c -> e -> r'' -> m r') -> (b -> d -> f -> m r'') -> (a, b) -> (c, d) -> (e, f) -> m r'
(<=**&) :: Monad m => (a -> c -> e -> r'' -> m r') -> (b -> d -> e -> m r'') -> (a, b) -> (c, d) -> e -> m r'
(<=**>) :: Monad m => (a -> c -> r'' -> m r') -> (b -> d -> e -> m r'') -> (a, b) -> (c, d) -> e -> m r'
(<=**<) :: Monad m => (a -> c -> e -> r'' -> m r') -> (b -> d -> m r'') -> (a, b) -> (c, d) -> e -> m r'
(<=**^) :: Monad m => (a -> c -> r'' -> m r') -> (b -> d -> m r'') -> (a, b) -> (c, d) -> e -> m r'
(<=*&*) :: Monad m => (a -> c -> d -> r'' -> m r') -> (b -> c -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r'
(<=*&&) :: Monad m => (a -> c -> d -> r'' -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r'
(<=*&>) :: Monad m => (a -> c -> r'' -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r'
(<=*&<) :: Monad m => (a -> c -> d -> r'' -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r'
(<=*&^) :: Monad m => (a -> c -> r'' -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r'
(<=*>*) :: Monad m => (a -> d -> r'' -> m r') -> (b -> c -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r'
(<=*>&) :: Monad m => (a -> d -> r'' -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r'
(<=*>>) :: Monad m => (a -> r'' -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r'
(<=*><) :: Monad m => (a -> d -> r'' -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r'
(<=*>^) :: Monad m => (a -> r'' -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r'
(<=*<*) :: Monad m => (a -> c -> d -> r'' -> m r') -> (b -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r'
(<=*<&) :: Monad m => (a -> c -> d -> r'' -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r'
(<=*<>) :: Monad m => (a -> c -> r'' -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r'
(<=*<<) :: Monad m => (a -> c -> d -> r'' -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r'
(<=*<^) :: Monad m => (a -> c -> r'' -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r'
(<=*^*) :: Monad m => (a -> d -> r'' -> m r') -> (b -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r'
(<=*^&) :: Monad m => (a -> d -> r'' -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r'
(<=*^>) :: Monad m => (a -> r'' -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r'
(<=*^<) :: Monad m => (a -> d -> r'' -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r'
(<=*^^) :: Monad m => (a -> r'' -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r'
(<=&**) :: Monad m => (a -> b -> d -> r'' -> m r') -> (a -> c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r'
(<=&*&) :: Monad m => (a -> b -> d -> r'' -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r'
(<=&*>) :: Monad m => (a -> b -> r'' -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r'
(<=&*<) :: Monad m => (a -> b -> d -> r'' -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r'
(<=&*^) :: Monad m => (a -> b -> r'' -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r'
(<=&&*) :: Monad m => (a -> b -> c -> r'' -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<=&&&) :: Monad m => (a -> b -> c -> r'' -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
(<=&&>) :: Monad m => (a -> b -> r'' -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
(<=&&<) :: Monad m => (a -> b -> c -> r'' -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
(<=&&^) :: Monad m => (a -> b -> r'' -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
(<=&>*) :: Monad m => (a -> c -> r'' -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<=&>&) :: Monad m => (a -> c -> r'' -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
(<=&>>) :: Monad m => (a -> r'' -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
(<=&><) :: Monad m => (a -> c -> r'' -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
(<=&>^) :: Monad m => (a -> r'' -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
(<=&<*) :: Monad m => (a -> b -> c -> r'' -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<=&<&) :: Monad m => (a -> b -> c -> r'' -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
(<=&<>) :: Monad m => (a -> b -> r'' -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
(<=&<<) :: Monad m => (a -> b -> c -> r'' -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
(<=&<^) :: Monad m => (a -> b -> r'' -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
(<=&^*) :: Monad m => (a -> c -> r'' -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<=&^&) :: Monad m => (a -> c -> r'' -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
(<=&^>) :: Monad m => (a -> r'' -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
(<=&^<) :: Monad m => (a -> c -> r'' -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
(<=&^^) :: Monad m => (a -> r'' -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
(<=>**) :: Monad m => (b -> d -> r'' -> m r') -> (a -> c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r'
(<=>*&) :: Monad m => (b -> d -> r'' -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r'
(<=>*>) :: Monad m => (b -> r'' -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r'
(<=>*<) :: Monad m => (b -> d -> r'' -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r'
(<=>*^) :: Monad m => (b -> r'' -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r'
(<=>&*) :: Monad m => (b -> c -> r'' -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<=>&&) :: Monad m => (b -> c -> r'' -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
(<=>&>) :: Monad m => (b -> r'' -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
(<=>&<) :: Monad m => (b -> c -> r'' -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
(<=>&^) :: Monad m => (b -> r'' -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
(<=>>*) :: Monad m => (c -> r'' -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<=>>&) :: Monad m => (c -> r'' -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
(<=>>>) :: Monad m => (r'' -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
(<=>><) :: Monad m => (c -> r'' -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
(<=>>^) :: Monad m => (r'' -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
(<=><*) :: Monad m => (b -> c -> r'' -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<=><&) :: Monad m => (b -> c -> r'' -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
(<=><>) :: Monad m => (b -> r'' -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
(<=><<) :: Monad m => (b -> c -> r'' -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
(<=><^) :: Monad m => (b -> r'' -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
(<=>^*) :: Monad m => (c -> r'' -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<=>^&) :: Monad m => (c -> r'' -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
(<=>^>) :: Monad m => (r'' -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
(<=>^<) :: Monad m => (c -> r'' -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
(<=>^^) :: Monad m => (r'' -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
(<=<**) :: Monad m => (a -> b -> d -> r'' -> m r') -> (c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r'
(<=<*&) :: Monad m => (a -> b -> d -> r'' -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r'
(<=<*>) :: Monad m => (a -> b -> r'' -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r'
(<=<*<) :: Monad m => (a -> b -> d -> r'' -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r'
(<=<*^) :: Monad m => (a -> b -> r'' -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r'
(<=<&*) :: Monad m => (a -> b -> c -> r'' -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<=<&&) :: Monad m => (a -> b -> c -> r'' -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
(<=<&>) :: Monad m => (a -> b -> r'' -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
(<=<&<) :: Monad m => (a -> b -> c -> r'' -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
(<=<&^) :: Monad m => (a -> b -> r'' -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
(<=<>*) :: Monad m => (a -> c -> r'' -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<=<>&) :: Monad m => (a -> c -> r'' -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
(<=<>>) :: Monad m => (a -> r'' -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
(<=<><) :: Monad m => (a -> c -> r'' -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
(<=<>^) :: Monad m => (a -> r'' -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
(<=<<*) :: Monad m => (a -> b -> c -> r'' -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r'
(<=<<&) :: Monad m => (a -> b -> c -> r'' -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
(<=<<>) :: Monad m => (a -> b -> r'' -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
(<=<<<) :: Monad m => (a -> b -> c -> r'' -> m r') -> m r'' -> a -> b -> c -> m r'
(<=<<^) :: Monad m => (a -> b -> r'' -> m r') -> m r'' -> a -> b -> c -> m r'
(<=<^*) :: Monad m => (a -> c -> r'' -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r'
(<=<^&) :: Monad m => (a -> c -> r'' -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
(<=<^>) :: Monad m => (a -> r'' -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
(<=<^<) :: Monad m => (a -> c -> r'' -> m r') -> m r'' -> a -> b -> c -> m r'
(<=<^^) :: Monad m => (a -> r'' -> m r') -> m r'' -> a -> b -> c -> m r'
(<=^**) :: Monad m => (b -> d -> r'' -> m r') -> (c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r'
(<=^*&) :: Monad m => (b -> d -> r'' -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r'
(<=^*>) :: Monad m => (b -> r'' -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r'
(<=^*<) :: Monad m => (b -> d -> r'' -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r'
(<=^*^) :: Monad m => (b -> r'' -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r'
(<=^&*) :: Monad m => (b -> c -> r'' -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<=^&&) :: Monad m => (b -> c -> r'' -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
(<=^&>) :: Monad m => (b -> r'' -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
(<=^&<) :: Monad m => (b -> c -> r'' -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
(<=^&^) :: Monad m => (b -> r'' -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
(<=^>*) :: Monad m => (c -> r'' -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<=^>&) :: Monad m => (c -> r'' -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
(<=^>>) :: Monad m => (r'' -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
(<=^><) :: Monad m => (c -> r'' -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
(<=^>^) :: Monad m => (r'' -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
(<=^<*) :: Monad m => (b -> c -> r'' -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r'
(<=^<&) :: Monad m => (b -> c -> r'' -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
(<=^<>) :: Monad m => (b -> r'' -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
(<=^<<) :: Monad m => (b -> c -> r'' -> m r') -> m r'' -> a -> b -> c -> m r'
(<=^<^) :: Monad m => (b -> r'' -> m r') -> m r'' -> a -> b -> c -> m r'
(<=^^*) :: Monad m => (c -> r'' -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r'
(<=^^&) :: Monad m => (c -> r'' -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
(<=^^>) :: Monad m => (r'' -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
(<=^^<) :: Monad m => (c -> r'' -> m r') -> m r'' -> a -> b -> c -> m r'
(<=^^^) :: Monad m => (r'' -> m r') -> m r'' -> a -> b -> c -> m r'
(<=**) :: Monad m => (a -> c -> r'' -> m r') -> (b -> d -> m r'') -> (a, b) -> (c, d) -> m r'
(<=*&) :: Monad m => (a -> c -> r'' -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> m r'
(<=*>) :: Monad m => (a -> r'' -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> m r'
(<=*<) :: Monad m => (a -> c -> r'' -> m r') -> (b -> m r'') -> (a, b) -> c -> m r'
(<=*^) :: Monad m => (a -> r'' -> m r') -> (b -> m r'') -> (a, b) -> c -> m r'
(<=&*) :: Monad m => (a -> b -> r'' -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> m r'
(<=&&) :: Monad m => (a -> b -> r'' -> m r') -> (a -> b -> m r'') -> a -> b -> m r'
(<=&>) :: Monad m => (a -> r'' -> m r') -> (a -> b -> m r'') -> a -> b -> m r'
(<=&<) :: Monad m => (a -> b -> r'' -> m r') -> (a -> m r'') -> a -> b -> m r'
(<=&^) :: Monad m => (a -> r'' -> m r') -> (a -> m r'') -> a -> b -> m r'
(<=>*) :: Monad m => (b -> r'' -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> m r'
(<=>&) :: Monad m => (b -> r'' -> m r') -> (a -> b -> m r'') -> a -> b -> m r'
(<=>>) :: Monad m => (r'' -> m r') -> (a -> b -> m r'') -> a -> b -> m r'
(<=><) :: Monad m => (b -> r'' -> m r') -> (a -> m r'') -> a -> b -> m r'
(<=>^) :: Monad m => (r'' -> m r') -> (a -> m r'') -> a -> b -> m r'
(<=<*) :: Monad m => (a -> b -> r'' -> m r') -> (c -> m r'') -> a -> (b, c) -> m r'
(<=<&) :: Monad m => (a -> b -> r'' -> m r') -> (b -> m r'') -> a -> b -> m r'
(<=<>) :: Monad m => (a -> r'' -> m r') -> (b -> m r'') -> a -> b -> m r'
(<=<<) :: Monad m => (a -> b -> r'' -> m r') -> m r'' -> a -> b -> m r'
(<=<^) :: Monad m => (a -> r'' -> m r') -> m r'' -> a -> b -> m r'
(<=^*) :: Monad m => (b -> r'' -> m r') -> (c -> m r'') -> a -> (b, c) -> m r'
(<=^&) :: Monad m => (b -> r'' -> m r') -> (b -> m r'') -> a -> b -> m r'
(<=^>) :: Monad m => (r'' -> m r') -> (b -> m r'') -> a -> b -> m r'
(<=^<) :: Monad m => (b -> r'' -> m r') -> m r'' -> a -> b -> m r'
(<=^^) :: Monad m => (r'' -> m r') -> m r'' -> a -> b -> m r'
(<=*) :: Monad m => (a -> r'' -> m r') -> (b -> m r'') -> (a, b) -> m r'
(<=&) :: Monad m => (a -> r'' -> m r') -> (a -> m r'') -> a -> m r'
(<=>) :: Monad m => (r'' -> m r') -> (a -> m r'') -> a -> m r'
(<=<) :: Monad m => (a -> r'' -> m r') -> m r'' -> a -> m r'
(<=^) :: Monad m => (r'' -> m r') -> m r'' -> a -> m r'
(<<) :: Monad m => m b -> m a -> m b
(<<***) :: Monad m => (a -> c -> e -> m r') -> (b -> d -> f -> m r'') -> (a, b) -> (c, d) -> (e, f) -> m r'
(<<**&) :: Monad m => (a -> c -> e -> m r') -> (b -> d -> e -> m r'') -> (a, b) -> (c, d) -> e -> m r'
(<<**>) :: Monad m => (a -> c -> m r') -> (b -> d -> e -> m r'') -> (a, b) -> (c, d) -> e -> m r'
(<<**<) :: Monad m => (a -> c -> e -> m r') -> (b -> d -> m r'') -> (a, b) -> (c, d) -> e -> m r'
(<<**^) :: Monad m => (a -> c -> m r') -> (b -> d -> m r'') -> (a, b) -> (c, d) -> e -> m r'
(<<*&*) :: Monad m => (a -> c -> d -> m r') -> (b -> c -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r'
(<<*&&) :: Monad m => (a -> c -> d -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r'
(<<*&>) :: Monad m => (a -> c -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r'
(<<*&<) :: Monad m => (a -> c -> d -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r'
(<<*&^) :: Monad m => (a -> c -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r'
(<<*>*) :: Monad m => (a -> d -> m r') -> (b -> c -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r'
(<<*>&) :: Monad m => (a -> d -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r'
(<<*>>) :: Monad m => (a -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r'
(<<*><) :: Monad m => (a -> d -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r'
(<<*>^) :: Monad m => (a -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r'
(<<*<*) :: Monad m => (a -> c -> d -> m r') -> (b -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r'
(<<*<&) :: Monad m => (a -> c -> d -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r'
(<<*<>) :: Monad m => (a -> c -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r'
(<<*<<) :: Monad m => (a -> c -> d -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r'
(<<*<^) :: Monad m => (a -> c -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r'
(<<*^*) :: Monad m => (a -> d -> m r') -> (b -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r'
(<<*^&) :: Monad m => (a -> d -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r'
(<<*^>) :: Monad m => (a -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r'
(<<*^<) :: Monad m => (a -> d -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r'
(<<*^^) :: Monad m => (a -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r'
(<<&**) :: Monad m => (a -> b -> d -> m r') -> (a -> c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r'
(<<&*&) :: Monad m => (a -> b -> d -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r'
(<<&*>) :: Monad m => (a -> b -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r'
(<<&*<) :: Monad m => (a -> b -> d -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r'
(<<&*^) :: Monad m => (a -> b -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r'
(<<&&*) :: Monad m => (a -> b -> c -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<<&&&) :: Monad m => (a -> b -> c -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
(<<&&>) :: Monad m => (a -> b -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
(<<&&<) :: Monad m => (a -> b -> c -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
(<<&&^) :: Monad m => (a -> b -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
(<<&>*) :: Monad m => (a -> c -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<<&>&) :: Monad m => (a -> c -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
(<<&>>) :: Monad m => (a -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
(<<&><) :: Monad m => (a -> c -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
(<<&>^) :: Monad m => (a -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
(<<&<*) :: Monad m => (a -> b -> c -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<<&<&) :: Monad m => (a -> b -> c -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
(<<&<>) :: Monad m => (a -> b -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
(<<&<<) :: Monad m => (a -> b -> c -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
(<<&<^) :: Monad m => (a -> b -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
(<<&^*) :: Monad m => (a -> c -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<<&^&) :: Monad m => (a -> c -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
(<<&^>) :: Monad m => (a -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
(<<&^<) :: Monad m => (a -> c -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
(<<&^^) :: Monad m => (a -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
(<<>**) :: Monad m => (b -> d -> m r') -> (a -> c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r'
(<<>*&) :: Monad m => (b -> d -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r'
(<<>*>) :: Monad m => (b -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r'
(<<>*<) :: Monad m => (b -> d -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r'
(<<>*^) :: Monad m => (b -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r'
(<<>&*) :: Monad m => (b -> c -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<<>&&) :: Monad m => (b -> c -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
(<<>&>) :: Monad m => (b -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
(<<>&<) :: Monad m => (b -> c -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
(<<>&^) :: Monad m => (b -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
(<<>>*) :: Monad m => (c -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<<>>&) :: Monad m => (c -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
(<<>>>) :: Monad m => m r' -> (a -> b -> c -> m r'') -> a -> b -> c -> m r'
(<<>><) :: Monad m => (c -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r'
(<<>>^) :: Monad m => m r' -> (a -> b -> m r'') -> a -> b -> c -> m r'
(<<><*) :: Monad m => (b -> c -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<<><&) :: Monad m => (b -> c -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
(<<><>) :: Monad m => (b -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
(<<><<) :: Monad m => (b -> c -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
(<<><^) :: Monad m => (b -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
(<<>^*) :: Monad m => (c -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<<>^&) :: Monad m => (c -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r'
(<<>^>) :: Monad m => m r' -> (a -> c -> m r'') -> a -> b -> c -> m r'
(<<>^<) :: Monad m => (c -> m r') -> (a -> m r'') -> a -> b -> c -> m r'
(<<>^^) :: Monad m => m r' -> (a -> m r'') -> a -> b -> c -> m r'
(<<<**) :: Monad m => (a -> b -> d -> m r') -> (c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r'
(<<<*&) :: Monad m => (a -> b -> d -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r'
(<<<*>) :: Monad m => (a -> b -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r'
(<<<*<) :: Monad m => (a -> b -> d -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r'
(<<<*^) :: Monad m => (a -> b -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r'
(<<<&*) :: Monad m => (a -> b -> c -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<<<&&) :: Monad m => (a -> b -> c -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
(<<<&>) :: Monad m => (a -> b -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
(<<<&<) :: Monad m => (a -> b -> c -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
(<<<&^) :: Monad m => (a -> b -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
(<<<>*) :: Monad m => (a -> c -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<<<>&) :: Monad m => (a -> c -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
(<<<>>) :: Monad m => (a -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
(<<<><) :: Monad m => (a -> c -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
(<<<>^) :: Monad m => (a -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
(<<<<*) :: Monad m => (a -> b -> c -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r'
(<<<<&) :: Monad m => (a -> b -> c -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
(<<<<>) :: Monad m => (a -> b -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
(<<<<<) :: Monad m => (a -> b -> c -> m r') -> m r'' -> a -> b -> c -> m r'
(<<<<^) :: Monad m => (a -> b -> m r') -> m r'' -> a -> b -> c -> m r'
(<<<^*) :: Monad m => (a -> c -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r'
(<<<^&) :: Monad m => (a -> c -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
(<<<^>) :: Monad m => (a -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
(<<<^<) :: Monad m => (a -> c -> m r') -> m r'' -> a -> b -> c -> m r'
(<<<^^) :: Monad m => (a -> m r') -> m r'' -> a -> b -> c -> m r'
(<<^**) :: Monad m => (b -> d -> m r') -> (c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r'
(<<^*&) :: Monad m => (b -> d -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r'
(<<^*>) :: Monad m => (b -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r'
(<<^*<) :: Monad m => (b -> d -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r'
(<<^*^) :: Monad m => (b -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r'
(<<^&*) :: Monad m => (b -> c -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<<^&&) :: Monad m => (b -> c -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
(<<^&>) :: Monad m => (b -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
(<<^&<) :: Monad m => (b -> c -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
(<<^&^) :: Monad m => (b -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
(<<^>*) :: Monad m => (c -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r'
(<<^>&) :: Monad m => (c -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r'
(<<^>>) :: Monad m => m r' -> (b -> c -> m r'') -> a -> b -> c -> m r'
(<<^><) :: Monad m => (c -> m r') -> (b -> m r'') -> a -> b -> c -> m r'
(<<^>^) :: Monad m => m r' -> (b -> m r'') -> a -> b -> c -> m r'
(<<^<*) :: Monad m => (b -> c -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r'
(<<^<&) :: Monad m => (b -> c -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
(<<^<>) :: Monad m => (b -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
(<<^<<) :: Monad m => (b -> c -> m r') -> m r'' -> a -> b -> c -> m r'
(<<^<^) :: Monad m => (b -> m r') -> m r'' -> a -> b -> c -> m r'
(<<^^*) :: Monad m => (c -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r'
(<<^^&) :: Monad m => (c -> m r') -> (c -> m r'') -> a -> b -> c -> m r'
(<<^^>) :: Monad m => m r' -> (c -> m r'') -> a -> b -> c -> m r'
(<<^^<) :: Monad m => (c -> m r') -> m r'' -> a -> b -> c -> m r'
(<<^^^) :: Monad m => m r' -> m r'' -> a -> b -> c -> m r'
(<<**) :: Monad m => (a -> c -> m r') -> (b -> d -> m r'') -> (a, b) -> (c, d) -> m r'
(<<*&) :: Monad m => (a -> c -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> m r'
(<<*>) :: Monad m => (a -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> m r'
(<<*<) :: Monad m => (a -> c -> m r') -> (b -> m r'') -> (a, b) -> c -> m r'
(<<*^) :: Monad m => (a -> m r') -> (b -> m r'') -> (a, b) -> c -> m r'
(<<&*) :: Monad m => (a -> b -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> m r'
(<<&&) :: Monad m => (a -> b -> m r') -> (a -> b -> m r'') -> a -> b -> m r'
(<<&>) :: Monad m => (a -> m r') -> (a -> b -> m r'') -> a -> b -> m r'
(<<&<) :: Monad m => (a -> b -> m r') -> (a -> m r'') -> a -> b -> m r'
(<<&^) :: Monad m => (a -> m r') -> (a -> m r'') -> a -> b -> m r'
(<<>*) :: Monad m => (b -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> m r'
(<<>&) :: Monad m => (b -> m r') -> (a -> b -> m r'') -> a -> b -> m r'
(<<>>) :: Monad m => m r' -> (a -> b -> m r'') -> a -> b -> m r'
(<<><) :: Monad m => (b -> m r') -> (a -> m r'') -> a -> b -> m r'
(<<>^) :: Monad m => m r' -> (a -> m r'') -> a -> b -> m r'
(<<<*) :: Monad m => (a -> b -> m r') -> (c -> m r'') -> a -> (b, c) -> m r'
(<<<&) :: Monad m => (a -> b -> m r') -> (b -> m r'') -> a -> b -> m r'
(<<<>) :: Monad m => (a -> m r') -> (b -> m r'') -> a -> b -> m r'
(<<<<) :: Monad m => (a -> b -> m r') -> m r'' -> a -> b -> m r'
(<<<^) :: Monad m => (a -> m r') -> m r'' -> a -> b -> m r'
(<<^*) :: Monad m => (b -> m r') -> (c -> m r'') -> a -> (b, c) -> m r'
(<<^&) :: Monad m => (b -> m r') -> (b -> m r'') -> a -> b -> m r'
(<<^>) :: Monad m => m r' -> (b -> m r'') -> a -> b -> m r'
(<<^<) :: Monad m => (b -> m r') -> m r'' -> a -> b -> m r'
(<<^^) :: Monad m => m r' -> m r'' -> a -> b -> m r'
(<<*) :: Monad m => (a -> m r') -> (b -> m r'') -> (a, b) -> m r'
(<<&) :: Monad m => (a -> m r') -> (a -> m r'') -> a -> m r'
(<<>) :: Monad m => m r' -> (a -> m r'') -> a -> m r'
(<<<) :: Monad m => (a -> m r') -> m r'' -> a -> m r'
(<<^) :: Monad m => m r' -> m r'' -> a -> m r'
(>>***) :: Monad m => (a -> c -> e -> m r') -> (b -> d -> f -> m r'') -> (a, b) -> (c, d) -> (e, f) -> m r''
(>>**&) :: Monad m => (a -> c -> e -> m r') -> (b -> d -> e -> m r'') -> (a, b) -> (c, d) -> e -> m r''
(>>**>) :: Monad m => (a -> c -> m r') -> (b -> d -> e -> m r'') -> (a, b) -> (c, d) -> e -> m r''
(>>**<) :: Monad m => (a -> c -> e -> m r') -> (b -> d -> m r'') -> (a, b) -> (c, d) -> e -> m r''
(>>**^) :: Monad m => (a -> c -> m r') -> (b -> d -> m r'') -> (a, b) -> (c, d) -> e -> m r''
(>>*&*) :: Monad m => (a -> c -> d -> m r') -> (b -> c -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r''
(>>*&&) :: Monad m => (a -> c -> d -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r''
(>>*&>) :: Monad m => (a -> c -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r''
(>>*&<) :: Monad m => (a -> c -> d -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r''
(>>*&^) :: Monad m => (a -> c -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r''
(>>*>*) :: Monad m => (a -> d -> m r') -> (b -> c -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r''
(>>*>&) :: Monad m => (a -> d -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r''
(>>*>>) :: Monad m => (a -> m r') -> (b -> c -> d -> m r'') -> (a, b) -> c -> d -> m r''
(>>*><) :: Monad m => (a -> d -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r''
(>>*>^) :: Monad m => (a -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> d -> m r''
(>>*<*) :: Monad m => (a -> c -> d -> m r') -> (b -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r''
(>>*<&) :: Monad m => (a -> c -> d -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r''
(>>*<>) :: Monad m => (a -> c -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r''
(>>*<<) :: Monad m => (a -> c -> d -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r''
(>>*<^) :: Monad m => (a -> c -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r''
(>>*^*) :: Monad m => (a -> d -> m r') -> (b -> e -> m r'') -> (a, b) -> c -> (d, e) -> m r''
(>>*^&) :: Monad m => (a -> d -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r''
(>>*^>) :: Monad m => (a -> m r') -> (b -> d -> m r'') -> (a, b) -> c -> d -> m r''
(>>*^<) :: Monad m => (a -> d -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r''
(>>*^^) :: Monad m => (a -> m r') -> (b -> m r'') -> (a, b) -> c -> d -> m r''
(>>&**) :: Monad m => (a -> b -> d -> m r') -> (a -> c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r''
(>>&*&) :: Monad m => (a -> b -> d -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r''
(>>&*>) :: Monad m => (a -> b -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r''
(>>&*<) :: Monad m => (a -> b -> d -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r''
(>>&*^) :: Monad m => (a -> b -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r''
(>>&&*) :: Monad m => (a -> b -> c -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r''
(>>&&&) :: Monad m => (a -> b -> c -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r''
(>>&&>) :: Monad m => (a -> b -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r''
(>>&&<) :: Monad m => (a -> b -> c -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r''
(>>&&^) :: Monad m => (a -> b -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r''
(>>&>*) :: Monad m => (a -> c -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r''
(>>&>&) :: Monad m => (a -> c -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r''
(>>&>>) :: Monad m => (a -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r''
(>>&><) :: Monad m => (a -> c -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r''
(>>&>^) :: Monad m => (a -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r''
(>>&<*) :: Monad m => (a -> b -> c -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r''
(>>&<&) :: Monad m => (a -> b -> c -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r''
(>>&<>) :: Monad m => (a -> b -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r''
(>>&<<) :: Monad m => (a -> b -> c -> m r') -> (a -> m r'') -> a -> b -> c -> m r''
(>>&<^) :: Monad m => (a -> b -> m r') -> (a -> m r'') -> a -> b -> c -> m r''
(>>&^*) :: Monad m => (a -> c -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r''
(>>&^&) :: Monad m => (a -> c -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r''
(>>&^>) :: Monad m => (a -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r''
(>>&^<) :: Monad m => (a -> c -> m r') -> (a -> m r'') -> a -> b -> c -> m r''
(>>&^^) :: Monad m => (a -> m r') -> (a -> m r'') -> a -> b -> c -> m r''
(>>>**) :: Monad m => (b -> d -> m r') -> (a -> c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r''
(>>>*&) :: Monad m => (b -> d -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r''
(>>>*>) :: Monad m => (b -> m r') -> (a -> c -> d -> m r'') -> a -> (b, c) -> d -> m r''
(>>>*<) :: Monad m => (b -> d -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r''
(>>>*^) :: Monad m => (b -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> d -> m r''
(>>>&*) :: Monad m => (b -> c -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r''
(>>>&&) :: Monad m => (b -> c -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r''
(>>>&>) :: Monad m => (b -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r''
(>>>&<) :: Monad m => (b -> c -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r''
(>>>&^) :: Monad m => (b -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r''
(>>>>*) :: Monad m => (c -> m r') -> (a -> b -> d -> m r'') -> a -> b -> (c, d) -> m r''
(>>>>&) :: Monad m => (c -> m r') -> (a -> b -> c -> m r'') -> a -> b -> c -> m r''
(>>>>>) :: Monad m => m r' -> (a -> b -> c -> m r'') -> a -> b -> c -> m r''
(>>>><) :: Monad m => (c -> m r') -> (a -> b -> m r'') -> a -> b -> c -> m r''
(>>>>^) :: Monad m => m r' -> (a -> b -> m r'') -> a -> b -> c -> m r''
(>>><*) :: Monad m => (b -> c -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r''
(>>><&) :: Monad m => (b -> c -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r''
(>>><>) :: Monad m => (b -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r''
(>>><<) :: Monad m => (b -> c -> m r') -> (a -> m r'') -> a -> b -> c -> m r''
(>>><^) :: Monad m => (b -> m r') -> (a -> m r'') -> a -> b -> c -> m r''
(>>>^*) :: Monad m => (c -> m r') -> (a -> d -> m r'') -> a -> b -> (c, d) -> m r''
(>>>^&) :: Monad m => (c -> m r') -> (a -> c -> m r'') -> a -> b -> c -> m r''
(>>>^>) :: Monad m => m r' -> (a -> c -> m r'') -> a -> b -> c -> m r''
(>>>^<) :: Monad m => (c -> m r') -> (a -> m r'') -> a -> b -> c -> m r''
(>>>^^) :: Monad m => m r' -> (a -> m r'') -> a -> b -> c -> m r''
(>><**) :: Monad m => (a -> b -> d -> m r') -> (c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r''
(>><*&) :: Monad m => (a -> b -> d -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r''
(>><*>) :: Monad m => (a -> b -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r''
(>><*<) :: Monad m => (a -> b -> d -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r''
(>><*^) :: Monad m => (a -> b -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r''
(>><&*) :: Monad m => (a -> b -> c -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r''
(>><&&) :: Monad m => (a -> b -> c -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r''
(>><&>) :: Monad m => (a -> b -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r''
(>><&<) :: Monad m => (a -> b -> c -> m r') -> (b -> m r'') -> a -> b -> c -> m r''
(>><&^) :: Monad m => (a -> b -> m r') -> (b -> m r'') -> a -> b -> c -> m r''
(>><>*) :: Monad m => (a -> c -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r''
(>><>&) :: Monad m => (a -> c -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r''
(>><>>) :: Monad m => (a -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r''
(>><><) :: Monad m => (a -> c -> m r') -> (b -> m r'') -> a -> b -> c -> m r''
(>><>^) :: Monad m => (a -> m r') -> (b -> m r'') -> a -> b -> c -> m r''
(>><<*) :: Monad m => (a -> b -> c -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r''
(>><<&) :: Monad m => (a -> b -> c -> m r') -> (c -> m r'') -> a -> b -> c -> m r''
(>><<>) :: Monad m => (a -> b -> m r') -> (c -> m r'') -> a -> b -> c -> m r''
(>><<<) :: Monad m => (a -> b -> c -> m r') -> m r'' -> a -> b -> c -> m r''
(>><<^) :: Monad m => (a -> b -> m r') -> m r'' -> a -> b -> c -> m r''
(>><^*) :: Monad m => (a -> c -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r''
(>><^&) :: Monad m => (a -> c -> m r') -> (c -> m r'') -> a -> b -> c -> m r''
(>><^>) :: Monad m => (a -> m r') -> (c -> m r'') -> a -> b -> c -> m r''
(>><^<) :: Monad m => (a -> c -> m r') -> m r'' -> a -> b -> c -> m r''
(>><^^) :: Monad m => (a -> m r') -> m r'' -> a -> b -> c -> m r''
(>>^**) :: Monad m => (b -> d -> m r') -> (c -> e -> m r'') -> a -> (b, c) -> (d, e) -> m r''
(>>^*&) :: Monad m => (b -> d -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r''
(>>^*>) :: Monad m => (b -> m r') -> (c -> d -> m r'') -> a -> (b, c) -> d -> m r''
(>>^*<) :: Monad m => (b -> d -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r''
(>>^*^) :: Monad m => (b -> m r') -> (c -> m r'') -> a -> (b, c) -> d -> m r''
(>>^&*) :: Monad m => (b -> c -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r''
(>>^&&) :: Monad m => (b -> c -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r''
(>>^&>) :: Monad m => (b -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r''
(>>^&<) :: Monad m => (b -> c -> m r') -> (b -> m r'') -> a -> b -> c -> m r''
(>>^&^) :: Monad m => (b -> m r') -> (b -> m r'') -> a -> b -> c -> m r''
(>>^>*) :: Monad m => (c -> m r') -> (b -> d -> m r'') -> a -> b -> (c, d) -> m r''
(>>^>&) :: Monad m => (c -> m r') -> (b -> c -> m r'') -> a -> b -> c -> m r''
(>>^>>) :: Monad m => m r' -> (b -> c -> m r'') -> a -> b -> c -> m r''
(>>^><) :: Monad m => (c -> m r') -> (b -> m r'') -> a -> b -> c -> m r''
(>>^>^) :: Monad m => m r' -> (b -> m r'') -> a -> b -> c -> m r''
(>>^<*) :: Monad m => (b -> c -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r''
(>>^<&) :: Monad m => (b -> c -> m r') -> (c -> m r'') -> a -> b -> c -> m r''
(>>^<>) :: Monad m => (b -> m r') -> (c -> m r'') -> a -> b -> c -> m r''
(>>^<<) :: Monad m => (b -> c -> m r') -> m r'' -> a -> b -> c -> m r''
(>>^<^) :: Monad m => (b -> m r') -> m r'' -> a -> b -> c -> m r''
(>>^^*) :: Monad m => (c -> m r') -> (d -> m r'') -> a -> b -> (c, d) -> m r''
(>>^^&) :: Monad m => (c -> m r') -> (c -> m r'') -> a -> b -> c -> m r''
(>>^^>) :: Monad m => m r' -> (c -> m r'') -> a -> b -> c -> m r''
(>>^^<) :: Monad m => (c -> m r') -> m r'' -> a -> b -> c -> m r''
(>>^^^) :: Monad m => m r' -> m r'' -> a -> b -> c -> m r''
(>>**) :: Monad m => (a -> c -> m r') -> (b -> d -> m r'') -> (a, b) -> (c, d) -> m r''
(>>*&) :: Monad m => (a -> c -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> m r''
(>>*>) :: Monad m => (a -> m r') -> (b -> c -> m r'') -> (a, b) -> c -> m r''
(>>*<) :: Monad m => (a -> c -> m r') -> (b -> m r'') -> (a, b) -> c -> m r''
(>>*^) :: Monad m => (a -> m r') -> (b -> m r'') -> (a, b) -> c -> m r''
(>>&*) :: Monad m => (a -> b -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> m r''
(>>&&) :: Monad m => (a -> b -> m r') -> (a -> b -> m r'') -> a -> b -> m r''
(>>&>) :: Monad m => (a -> m r') -> (a -> b -> m r'') -> a -> b -> m r''
(>>&<) :: Monad m => (a -> b -> m r') -> (a -> m r'') -> a -> b -> m r''
(>>&^) :: Monad m => (a -> m r') -> (a -> m r'') -> a -> b -> m r''
(>>>*) :: Monad m => (b -> m r') -> (a -> c -> m r'') -> a -> (b, c) -> m r''
(>>>&) :: Monad m => (b -> m r') -> (a -> b -> m r'') -> a -> b -> m r''
(>>>>) :: Monad m => m r' -> (a -> b -> m r'') -> a -> b -> m r''
(>>><) :: Monad m => (b -> m r') -> (a -> m r'') -> a -> b -> m r''
(>>>^) :: Monad m => m r' -> (a -> m r'') -> a -> b -> m r''
(>><*) :: Monad m => (a -> b -> m r') -> (c -> m r'') -> a -> (b, c) -> m r''
(>><&) :: Monad m => (a -> b -> m r') -> (b -> m r'') -> a -> b -> m r''
(>><>) :: Monad m => (a -> m r') -> (b -> m r'') -> a -> b -> m r''
(>><<) :: Monad m => (a -> b -> m r') -> m r'' -> a -> b -> m r''
(>><^) :: Monad m => (a -> m r') -> m r'' -> a -> b -> m r''
(>>^*) :: Monad m => (b -> m r') -> (c -> m r'') -> a -> (b, c) -> m r''
(>>^&) :: Monad m => (b -> m r') -> (b -> m r'') -> a -> b -> m r''
(>>^>) :: Monad m => m r' -> (b -> m r'') -> a -> b -> m r''
(>>^<) :: Monad m => (b -> m r') -> m r'' -> a -> b -> m r''
(>>^^) :: Monad m => m r' -> m r'' -> a -> b -> m r''
(>>*) :: Monad m => (a -> m r') -> (b -> m r'') -> (a, b) -> m r''
(>>&) :: Monad m => (a -> m r') -> (a -> m r'') -> a -> m r''
(>>>) :: Monad m => m r' -> (a -> m r'') -> a -> m r''
(>><) :: Monad m => (a -> m r') -> m r'' -> a -> m r''
(>>^) :: Monad m => m r' -> m r'' -> a -> m r''
-- | 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
($***) :: (a -> c -> e -> r'' -> r') -> (b -> d -> f -> r'') -> (a, b) -> (c, d) -> (e, f) -> r'
($**&) :: (a -> c -> e -> r'' -> r') -> (b -> d -> e -> r'') -> (a, b) -> (c, d) -> e -> r'
($**>) :: (a -> c -> r'' -> r') -> (b -> d -> e -> r'') -> (a, b) -> (c, d) -> e -> r'
($**<) :: (a -> c -> e -> r'' -> r') -> (b -> d -> r'') -> (a, b) -> (c, d) -> e -> r'
($**^) :: (a -> c -> r'' -> r') -> (b -> d -> r'') -> (a, b) -> (c, d) -> e -> r'
($*&*) :: (a -> c -> d -> r'' -> r') -> (b -> c -> e -> r'') -> (a, b) -> c -> (d, e) -> r'
($*&&) :: (a -> c -> d -> r'' -> r') -> (b -> c -> d -> r'') -> (a, b) -> c -> d -> r'
($*&>) :: (a -> c -> r'' -> r') -> (b -> c -> d -> r'') -> (a, b) -> c -> d -> r'
($*&<) :: (a -> c -> d -> r'' -> r') -> (b -> c -> r'') -> (a, b) -> c -> d -> r'
($*&^) :: (a -> c -> r'' -> r') -> (b -> c -> r'') -> (a, b) -> c -> d -> r'
($*>*) :: (a -> d -> r'' -> r') -> (b -> c -> e -> r'') -> (a, b) -> c -> (d, e) -> r'
($*>&) :: (a -> d -> r'' -> r') -> (b -> c -> d -> r'') -> (a, b) -> c -> d -> r'
($*>>) :: (a -> r'' -> r') -> (b -> c -> d -> r'') -> (a, b) -> c -> d -> r'
($*><) :: (a -> d -> r'' -> r') -> (b -> c -> r'') -> (a, b) -> c -> d -> r'
($*>^) :: (a -> r'' -> r') -> (b -> c -> r'') -> (a, b) -> c -> d -> r'
($*<*) :: (a -> c -> d -> r'' -> r') -> (b -> e -> r'') -> (a, b) -> c -> (d, e) -> r'
($*<&) :: (a -> c -> d -> r'' -> r') -> (b -> d -> r'') -> (a, b) -> c -> d -> r'
($*<>) :: (a -> c -> r'' -> r') -> (b -> d -> r'') -> (a, b) -> c -> d -> r'
($*<<) :: (a -> c -> d -> r'' -> r') -> (b -> r'') -> (a, b) -> c -> d -> r'
($*<^) :: (a -> c -> r'' -> r') -> (b -> r'') -> (a, b) -> c -> d -> r'
($*^*) :: (a -> d -> r'' -> r') -> (b -> e -> r'') -> (a, b) -> c -> (d, e) -> r'
($*^&) :: (a -> d -> r'' -> r') -> (b -> d -> r'') -> (a, b) -> c -> d -> r'
($*^>) :: (a -> r'' -> r') -> (b -> d -> r'') -> (a, b) -> c -> d -> r'
($*^<) :: (a -> d -> r'' -> r') -> (b -> r'') -> (a, b) -> c -> d -> r'
($*^^) :: (a -> r'' -> r') -> (b -> r'') -> (a, b) -> c -> d -> r'
($&**) :: (a -> b -> d -> r'' -> r') -> (a -> c -> e -> r'') -> a -> (b, c) -> (d, e) -> r'
($&*&) :: (a -> b -> d -> r'' -> r') -> (a -> c -> d -> r'') -> a -> (b, c) -> d -> r'
($&*>) :: (a -> b -> r'' -> r') -> (a -> c -> d -> r'') -> a -> (b, c) -> d -> r'
($&*<) :: (a -> b -> d -> r'' -> r') -> (a -> c -> r'') -> a -> (b, c) -> d -> r'
($&*^) :: (a -> b -> r'' -> r') -> (a -> c -> r'') -> a -> (b, c) -> d -> r'
($&&*) :: (a -> b -> c -> r'' -> r') -> (a -> b -> d -> r'') -> a -> b -> (c, d) -> r'
($&&&) :: (a -> b -> c -> r'' -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> r'
($&&>) :: (a -> b -> r'' -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> r'
($&&<) :: (a -> b -> c -> r'' -> r') -> (a -> b -> r'') -> a -> b -> c -> r'
($&&^) :: (a -> b -> r'' -> r') -> (a -> b -> r'') -> a -> b -> c -> r'
($&>*) :: (a -> c -> r'' -> r') -> (a -> b -> d -> r'') -> a -> b -> (c, d) -> r'
($&>&) :: (a -> c -> r'' -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> r'
($&>>) :: (a -> r'' -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> r'
($&><) :: (a -> c -> r'' -> r') -> (a -> b -> r'') -> a -> b -> c -> r'
($&>^) :: (a -> r'' -> r') -> (a -> b -> r'') -> a -> b -> c -> r'
($&<*) :: (a -> b -> c -> r'' -> r') -> (a -> d -> r'') -> a -> b -> (c, d) -> r'
($&<&) :: (a -> b -> c -> r'' -> r') -> (a -> c -> r'') -> a -> b -> c -> r'
($&<>) :: (a -> b -> r'' -> r') -> (a -> c -> r'') -> a -> b -> c -> r'
($&<<) :: (a -> b -> c -> r'' -> r') -> (a -> r'') -> a -> b -> c -> r'
($&<^) :: (a -> b -> r'' -> r') -> (a -> r'') -> a -> b -> c -> r'
($&^*) :: (a -> c -> r'' -> r') -> (a -> d -> r'') -> a -> b -> (c, d) -> r'
($&^&) :: (a -> c -> r'' -> r') -> (a -> c -> r'') -> a -> b -> c -> r'
($&^>) :: (a -> r'' -> r') -> (a -> c -> r'') -> a -> b -> c -> r'
($&^<) :: (a -> c -> r'' -> r') -> (a -> r'') -> a -> b -> c -> r'
($&^^) :: (a -> r'' -> r') -> (a -> r'') -> a -> b -> c -> r'
($>**) :: (b -> d -> r'' -> r') -> (a -> c -> e -> r'') -> a -> (b, c) -> (d, e) -> r'
($>*&) :: (b -> d -> r'' -> r') -> (a -> c -> d -> r'') -> a -> (b, c) -> d -> r'
($>*>) :: (b -> r'' -> r') -> (a -> c -> d -> r'') -> a -> (b, c) -> d -> r'
($>*<) :: (b -> d -> r'' -> r') -> (a -> c -> r'') -> a -> (b, c) -> d -> r'
($>*^) :: (b -> r'' -> r') -> (a -> c -> r'') -> a -> (b, c) -> d -> r'
($>&*) :: (b -> c -> r'' -> r') -> (a -> b -> d -> r'') -> a -> b -> (c, d) -> r'
($>&&) :: (b -> c -> r'' -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> r'
($>&>) :: (b -> r'' -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> r'
($>&<) :: (b -> c -> r'' -> r') -> (a -> b -> r'') -> a -> b -> c -> r'
($>&^) :: (b -> r'' -> r') -> (a -> b -> r'') -> a -> b -> c -> r'
($>>*) :: (c -> r'' -> r') -> (a -> b -> d -> r'') -> a -> b -> (c, d) -> r'
($>>&) :: (c -> r'' -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> r'
($>>>) :: (r'' -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> r'
($>><) :: (c -> r'' -> r') -> (a -> b -> r'') -> a -> b -> c -> r'
($>>^) :: (r'' -> r') -> (a -> b -> r'') -> a -> b -> c -> r'
($><*) :: (b -> c -> r'' -> r') -> (a -> d -> r'') -> a -> b -> (c, d) -> r'
($><&) :: (b -> c -> r'' -> r') -> (a -> c -> r'') -> a -> b -> c -> r'
($><>) :: (b -> r'' -> r') -> (a -> c -> r'') -> a -> b -> c -> r'
($><<) :: (b -> c -> r'' -> r') -> (a -> r'') -> a -> b -> c -> r'
($><^) :: (b -> r'' -> r') -> (a -> r'') -> a -> b -> c -> r'
($>^*) :: (c -> r'' -> r') -> (a -> d -> r'') -> a -> b -> (c, d) -> r'
($>^&) :: (c -> r'' -> r') -> (a -> c -> r'') -> a -> b -> c -> r'
($>^>) :: (r'' -> r') -> (a -> c -> r'') -> a -> b -> c -> r'
($>^<) :: (c -> r'' -> r') -> (a -> r'') -> a -> b -> c -> r'
($>^^) :: (r'' -> r') -> (a -> r'') -> a -> b -> c -> r'
($<**) :: (a -> b -> d -> r'' -> r') -> (c -> e -> r'') -> a -> (b, c) -> (d, e) -> r'
($<*&) :: (a -> b -> d -> r'' -> r') -> (c -> d -> r'') -> a -> (b, c) -> d -> r'
($<*>) :: (a -> b -> r'' -> r') -> (c -> d -> r'') -> a -> (b, c) -> d -> r'
($<*<) :: (a -> b -> d -> r'' -> r') -> (c -> r'') -> a -> (b, c) -> d -> r'
($<*^) :: (a -> b -> r'' -> r') -> (c -> r'') -> a -> (b, c) -> d -> r'
($<&*) :: (a -> b -> c -> r'' -> r') -> (b -> d -> r'') -> a -> b -> (c, d) -> r'
($<&&) :: (a -> b -> c -> r'' -> r') -> (b -> c -> r'') -> a -> b -> c -> r'
($<&>) :: (a -> b -> r'' -> r') -> (b -> c -> r'') -> a -> b -> c -> r'
($<&<) :: (a -> b -> c -> r'' -> r') -> (b -> r'') -> a -> b -> c -> r'
($<&^) :: (a -> b -> r'' -> r') -> (b -> r'') -> a -> b -> c -> r'
($<>*) :: (a -> c -> r'' -> r') -> (b -> d -> r'') -> a -> b -> (c, d) -> r'
($<>&) :: (a -> c -> r'' -> r') -> (b -> c -> r'') -> a -> b -> c -> r'
($<>>) :: (a -> r'' -> r') -> (b -> c -> r'') -> a -> b -> c -> r'
($<><) :: (a -> c -> r'' -> r') -> (b -> r'') -> a -> b -> c -> r'
($<>^) :: (a -> r'' -> r') -> (b -> r'') -> a -> b -> c -> r'
($<<*) :: (a -> b -> c -> r'' -> r') -> (d -> r'') -> a -> b -> (c, d) -> r'
($<<&) :: (a -> b -> c -> r'' -> r') -> (c -> r'') -> a -> b -> c -> r'
($<<>) :: (a -> b -> r'' -> r') -> (c -> r'') -> a -> b -> c -> r'
($<<<) :: (a -> b -> c -> r'' -> r') -> r'' -> a -> b -> c -> r'
($<<^) :: (a -> b -> r'' -> r') -> r'' -> a -> b -> c -> r'
($<^*) :: (a -> c -> r'' -> r') -> (d -> r'') -> a -> b -> (c, d) -> r'
($<^&) :: (a -> c -> r'' -> r') -> (c -> r'') -> a -> b -> c -> r'
($<^>) :: (a -> r'' -> r') -> (c -> r'') -> a -> b -> c -> r'
($<^<) :: (a -> c -> r'' -> r') -> r'' -> a -> b -> c -> r'
($<^^) :: (a -> r'' -> r') -> r'' -> a -> b -> c -> r'
($^**) :: (b -> d -> r'' -> r') -> (c -> e -> r'') -> a -> (b, c) -> (d, e) -> r'
($^*&) :: (b -> d -> r'' -> r') -> (c -> d -> r'') -> a -> (b, c) -> d -> r'
($^*>) :: (b -> r'' -> r') -> (c -> d -> r'') -> a -> (b, c) -> d -> r'
($^*<) :: (b -> d -> r'' -> r') -> (c -> r'') -> a -> (b, c) -> d -> r'
($^*^) :: (b -> r'' -> r') -> (c -> r'') -> a -> (b, c) -> d -> r'
($^&*) :: (b -> c -> r'' -> r') -> (b -> d -> r'') -> a -> b -> (c, d) -> r'
($^&&) :: (b -> c -> r'' -> r') -> (b -> c -> r'') -> a -> b -> c -> r'
($^&>) :: (b -> r'' -> r') -> (b -> c -> r'') -> a -> b -> c -> r'
($^&<) :: (b -> c -> r'' -> r') -> (b -> r'') -> a -> b -> c -> r'
($^&^) :: (b -> r'' -> r') -> (b -> r'') -> a -> b -> c -> r'
($^>*) :: (c -> r'' -> r') -> (b -> d -> r'') -> a -> b -> (c, d) -> r'
($^>&) :: (c -> r'' -> r') -> (b -> c -> r'') -> a -> b -> c -> r'
($^>>) :: (r'' -> r') -> (b -> c -> r'') -> a -> b -> c -> r'
($^><) :: (c -> r'' -> r') -> (b -> r'') -> a -> b -> c -> r'
($^>^) :: (r'' -> r') -> (b -> r'') -> a -> b -> c -> r'
($^<*) :: (b -> c -> r'' -> r') -> (d -> r'') -> a -> b -> (c, d) -> r'
($^<&) :: (b -> c -> r'' -> r') -> (c -> r'') -> a -> b -> c -> r'
($^<>) :: (b -> r'' -> r') -> (c -> r'') -> a -> b -> c -> r'
($^<<) :: (b -> c -> r'' -> r') -> r'' -> a -> b -> c -> r'
($^<^) :: (b -> r'' -> r') -> r'' -> a -> b -> c -> r'
($^^*) :: (c -> r'' -> r') -> (d -> r'') -> a -> b -> (c, d) -> r'
($^^&) :: (c -> r'' -> r') -> (c -> r'') -> a -> b -> c -> r'
($^^>) :: (r'' -> r') -> (c -> r'') -> a -> b -> c -> r'
($^^<) :: (c -> r'' -> r') -> r'' -> a -> b -> c -> r'
($^^^) :: (r'' -> r') -> r'' -> a -> b -> c -> r'
($**) :: (a -> c -> r'' -> r') -> (b -> d -> r'') -> (a, b) -> (c, d) -> r'
($*&) :: (a -> c -> r'' -> r') -> (b -> c -> r'') -> (a, b) -> c -> r'
($*>) :: (a -> r'' -> r') -> (b -> c -> r'') -> (a, b) -> c -> r'
($*<) :: (a -> c -> r'' -> r') -> (b -> r'') -> (a, b) -> c -> r'
($*^) :: (a -> r'' -> r') -> (b -> r'') -> (a, b) -> c -> r'
($&*) :: (a -> b -> r'' -> r') -> (a -> c -> r'') -> a -> (b, c) -> r'
($&&) :: (a -> b -> r'' -> r') -> (a -> b -> r'') -> a -> b -> r'
($&>) :: (a -> r'' -> r') -> (a -> b -> r'') -> a -> b -> r'
($&<) :: (a -> b -> r'' -> r') -> (a -> r'') -> a -> b -> r'
($&^) :: (a -> r'' -> r') -> (a -> r'') -> a -> b -> r'
($>*) :: (b -> r'' -> r') -> (a -> c -> r'') -> a -> (b, c) -> r'
($>&) :: (b -> r'' -> r') -> (a -> b -> r'') -> a -> b -> r'
($>>) :: (r'' -> r') -> (a -> b -> r'') -> a -> b -> r'
($><) :: (b -> r'' -> r') -> (a -> r'') -> a -> b -> r'
($>^) :: (r'' -> r') -> (a -> r'') -> a -> b -> r'
($<*) :: (a -> b -> r'' -> r') -> (c -> r'') -> a -> (b, c) -> r'
($<&) :: (a -> b -> r'' -> r') -> (b -> r'') -> a -> b -> r'
($<>) :: (a -> r'' -> r') -> (b -> r'') -> a -> b -> r'
($<<) :: (a -> b -> r'' -> r') -> r'' -> a -> b -> r'
($<^) :: (a -> r'' -> r') -> r'' -> a -> b -> r'
($^*) :: (b -> r'' -> r') -> (c -> r'') -> a -> (b, c) -> r'
($^&) :: (b -> r'' -> r') -> (b -> r'') -> a -> b -> r'
($^>) :: (r'' -> r') -> (b -> r'') -> a -> b -> r'
($^<) :: (b -> r'' -> r') -> r'' -> a -> b -> r'
($^^) :: (r'' -> r') -> r'' -> a -> b -> r'
($*) :: (a -> r'' -> r') -> (b -> r'') -> (a, b) -> r'
($&) :: (a -> r'' -> r') -> (a -> r'') -> a -> r'
($>) :: (r'' -> r') -> (a -> r'') -> a -> r'
($<) :: (a -> r'' -> r') -> r'' -> a -> r'
($^) :: (r'' -> r') -> r'' -> a -> r'
(****) :: (a -> c -> e -> r') -> (b -> d -> f -> r'') -> (a, b) -> (c, d) -> (e, f) -> (r', r'')
(***&) :: (a -> c -> e -> r') -> (b -> d -> e -> r'') -> (a, b) -> (c, d) -> e -> (r', r'')
(***>) :: (a -> c -> r') -> (b -> d -> e -> r'') -> (a, b) -> (c, d) -> e -> (r', r'')
(***<) :: (a -> c -> e -> r') -> (b -> d -> r'') -> (a, b) -> (c, d) -> e -> (r', r'')
(***^) :: (a -> c -> r') -> (b -> d -> r'') -> (a, b) -> (c, d) -> e -> (r', r'')
(**&*) :: (a -> c -> d -> r') -> (b -> c -> e -> r'') -> (a, b) -> c -> (d, e) -> (r', r'')
(**&&) :: (a -> c -> d -> r') -> (b -> c -> d -> r'') -> (a, b) -> c -> d -> (r', r'')
(**&>) :: (a -> c -> r') -> (b -> c -> d -> r'') -> (a, b) -> c -> d -> (r', r'')
(**&<) :: (a -> c -> d -> r') -> (b -> c -> r'') -> (a, b) -> c -> d -> (r', r'')
(**&^) :: (a -> c -> r') -> (b -> c -> r'') -> (a, b) -> c -> d -> (r', r'')
(**>*) :: (a -> d -> r') -> (b -> c -> e -> r'') -> (a, b) -> c -> (d, e) -> (r', r'')
(**>&) :: (a -> d -> r') -> (b -> c -> d -> r'') -> (a, b) -> c -> d -> (r', r'')
(**>>) :: (a -> r') -> (b -> c -> d -> r'') -> (a, b) -> c -> d -> (r', r'')
(**><) :: (a -> d -> r') -> (b -> c -> r'') -> (a, b) -> c -> d -> (r', r'')
(**>^) :: (a -> r') -> (b -> c -> r'') -> (a, b) -> c -> d -> (r', r'')
(**<*) :: (a -> c -> d -> r') -> (b -> e -> r'') -> (a, b) -> c -> (d, e) -> (r', r'')
(**<&) :: (a -> c -> d -> r') -> (b -> d -> r'') -> (a, b) -> c -> d -> (r', r'')
(**<>) :: (a -> c -> r') -> (b -> d -> r'') -> (a, b) -> c -> d -> (r', r'')
(**<<) :: (a -> c -> d -> r') -> (b -> r'') -> (a, b) -> c -> d -> (r', r'')
(**<^) :: (a -> c -> r') -> (b -> r'') -> (a, b) -> c -> d -> (r', r'')
(**^*) :: (a -> d -> r') -> (b -> e -> r'') -> (a, b) -> c -> (d, e) -> (r', r'')
(**^&) :: (a -> d -> r') -> (b -> d -> r'') -> (a, b) -> c -> d -> (r', r'')
(**^>) :: (a -> r') -> (b -> d -> r'') -> (a, b) -> c -> d -> (r', r'')
(**^<) :: (a -> d -> r') -> (b -> r'') -> (a, b) -> c -> d -> (r', r'')
(**^^) :: (a -> r') -> (b -> r'') -> (a, b) -> c -> d -> (r', r'')
(*&**) :: (a -> b -> d -> r') -> (a -> c -> e -> r'') -> a -> (b, c) -> (d, e) -> (r', r'')
(*&*&) :: (a -> b -> d -> r') -> (a -> c -> d -> r'') -> a -> (b, c) -> d -> (r', r'')
(*&*>) :: (a -> b -> r') -> (a -> c -> d -> r'') -> a -> (b, c) -> d -> (r', r'')
(*&*<) :: (a -> b -> d -> r') -> (a -> c -> r'') -> a -> (b, c) -> d -> (r', r'')
(*&*^) :: (a -> b -> r') -> (a -> c -> r'') -> a -> (b, c) -> d -> (r', r'')
(*&&*) :: (a -> b -> c -> r') -> (a -> b -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
(*&&&) :: (a -> b -> c -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> (r', r'')
(*&&>) :: (a -> b -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> (r', r'')
(*&&<) :: (a -> b -> c -> r') -> (a -> b -> r'') -> a -> b -> c -> (r', r'')
(*&&^) :: (a -> b -> r') -> (a -> b -> r'') -> a -> b -> c -> (r', r'')
(*&>*) :: (a -> c -> r') -> (a -> b -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
(*&>&) :: (a -> c -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> (r', r'')
(*&>>) :: (a -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> (r', r'')
(*&><) :: (a -> c -> r') -> (a -> b -> r'') -> a -> b -> c -> (r', r'')
(*&>^) :: (a -> r') -> (a -> b -> r'') -> a -> b -> c -> (r', r'')
(*&<*) :: (a -> b -> c -> r') -> (a -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
(*&<&) :: (a -> b -> c -> r') -> (a -> c -> r'') -> a -> b -> c -> (r', r'')
(*&<>) :: (a -> b -> r') -> (a -> c -> r'') -> a -> b -> c -> (r', r'')
(*&<<) :: (a -> b -> c -> r') -> (a -> r'') -> a -> b -> c -> (r', r'')
(*&<^) :: (a -> b -> r') -> (a -> r'') -> a -> b -> c -> (r', r'')
(*&^*) :: (a -> c -> r') -> (a -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
(*&^&) :: (a -> c -> r') -> (a -> c -> r'') -> a -> b -> c -> (r', r'')
(*&^>) :: (a -> r') -> (a -> c -> r'') -> a -> b -> c -> (r', r'')
(*&^<) :: (a -> c -> r') -> (a -> r'') -> a -> b -> c -> (r', r'')
(*&^^) :: (a -> r') -> (a -> r'') -> a -> b -> c -> (r', r'')
(*>**) :: (b -> d -> r') -> (a -> c -> e -> r'') -> a -> (b, c) -> (d, e) -> (r', r'')
(*>*&) :: (b -> d -> r') -> (a -> c -> d -> r'') -> a -> (b, c) -> d -> (r', r'')
(*>*>) :: (b -> r') -> (a -> c -> d -> r'') -> a -> (b, c) -> d -> (r', r'')
(*>*<) :: (b -> d -> r') -> (a -> c -> r'') -> a -> (b, c) -> d -> (r', r'')
(*>*^) :: (b -> r') -> (a -> c -> r'') -> a -> (b, c) -> d -> (r', r'')
(*>&*) :: (b -> c -> r') -> (a -> b -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
(*>&&) :: (b -> c -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> (r', r'')
(*>&>) :: (b -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> (r', r'')
(*>&<) :: (b -> c -> r') -> (a -> b -> r'') -> a -> b -> c -> (r', r'')
(*>&^) :: (b -> r') -> (a -> b -> r'') -> a -> b -> c -> (r', r'')
(*>>*) :: (c -> r') -> (a -> b -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
(*>>&) :: (c -> r') -> (a -> b -> c -> r'') -> a -> b -> c -> (r', r'')
(*>>>) :: r' -> (a -> b -> c -> r'') -> a -> b -> c -> (r', r'')
(*>><) :: (c -> r') -> (a -> b -> r'') -> a -> b -> c -> (r', r'')
(*>>^) :: r' -> (a -> b -> r'') -> a -> b -> c -> (r', r'')
(*><*) :: (b -> c -> r') -> (a -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
(*><&) :: (b -> c -> r') -> (a -> c -> r'') -> a -> b -> c -> (r', r'')
(*><>) :: (b -> r') -> (a -> c -> r'') -> a -> b -> c -> (r', r'')
(*><<) :: (b -> c -> r') -> (a -> r'') -> a -> b -> c -> (r', r'')
(*><^) :: (b -> r') -> (a -> r'') -> a -> b -> c -> (r', r'')
(*>^*) :: (c -> r') -> (a -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
(*>^&) :: (c -> r') -> (a -> c -> r'') -> a -> b -> c -> (r', r'')
(*>^>) :: r' -> (a -> c -> r'') -> a -> b -> c -> (r', r'')
(*>^<) :: (c -> r') -> (a -> r'') -> a -> b -> c -> (r', r'')
(*>^^) :: r' -> (a -> r'') -> a -> b -> c -> (r', r'')
(*<**) :: (a -> b -> d -> r') -> (c -> e -> r'') -> a -> (b, c) -> (d, e) -> (r', r'')
(*<*&) :: (a -> b -> d -> r') -> (c -> d -> r'') -> a -> (b, c) -> d -> (r', r'')
(*<*>) :: (a -> b -> r') -> (c -> d -> r'') -> a -> (b, c) -> d -> (r', r'')
(*<*<) :: (a -> b -> d -> r') -> (c -> r'') -> a -> (b, c) -> d -> (r', r'')
(*<*^) :: (a -> b -> r') -> (c -> r'') -> a -> (b, c) -> d -> (r', r'')
(*<&*) :: (a -> b -> c -> r') -> (b -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
(*<&&) :: (a -> b -> c -> r') -> (b -> c -> r'') -> a -> b -> c -> (r', r'')
(*<&>) :: (a -> b -> r') -> (b -> c -> r'') -> a -> b -> c -> (r', r'')
(*<&<) :: (a -> b -> c -> r') -> (b -> r'') -> a -> b -> c -> (r', r'')
(*<&^) :: (a -> b -> r') -> (b -> r'') -> a -> b -> c -> (r', r'')
(*<>*) :: (a -> c -> r') -> (b -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
(*<>&) :: (a -> c -> r') -> (b -> c -> r'') -> a -> b -> c -> (r', r'')
(*<>>) :: (a -> r') -> (b -> c -> r'') -> a -> b -> c -> (r', r'')
(*<><) :: (a -> c -> r') -> (b -> r'') -> a -> b -> c -> (r', r'')
(*<>^) :: (a -> r') -> (b -> r'') -> a -> b -> c -> (r', r'')
(*<<*) :: (a -> b -> c -> r') -> (d -> r'') -> a -> b -> (c, d) -> (r', r'')
(*<<&) :: (a -> b -> c -> r') -> (c -> r'') -> a -> b -> c -> (r', r'')
(*<<>) :: (a -> b -> r') -> (c -> r'') -> a -> b -> c -> (r', r'')
(*<<<) :: (a -> b -> c -> r') -> r'' -> a -> b -> c -> (r', r'')
(*<<^) :: (a -> b -> r') -> r'' -> a -> b -> c -> (r', r'')
(*<^*) :: (a -> c -> r') -> (d -> r'') -> a -> b -> (c, d) -> (r', r'')
(*<^&) :: (a -> c -> r') -> (c -> r'') -> a -> b -> c -> (r', r'')
(*<^>) :: (a -> r') -> (c -> r'') -> a -> b -> c -> (r', r'')
(*<^<) :: (a -> c -> r') -> r'' -> a -> b -> c -> (r', r'')
(*<^^) :: (a -> r') -> r'' -> a -> b -> c -> (r', r'')
(*^**) :: (b -> d -> r') -> (c -> e -> r'') -> a -> (b, c) -> (d, e) -> (r', r'')
(*^*&) :: (b -> d -> r') -> (c -> d -> r'') -> a -> (b, c) -> d -> (r', r'')
(*^*>) :: (b -> r') -> (c -> d -> r'') -> a -> (b, c) -> d -> (r', r'')
(*^*<) :: (b -> d -> r') -> (c -> r'') -> a -> (b, c) -> d -> (r', r'')
(*^*^) :: (b -> r') -> (c -> r'') -> a -> (b, c) -> d -> (r', r'')
(*^&*) :: (b -> c -> r') -> (b -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
(*^&&) :: (b -> c -> r') -> (b -> c -> r'') -> a -> b -> c -> (r', r'')
(*^&>) :: (b -> r') -> (b -> c -> r'') -> a -> b -> c -> (r', r'')
(*^&<) :: (b -> c -> r') -> (b -> r'') -> a -> b -> c -> (r', r'')
(*^&^) :: (b -> r') -> (b -> r'') -> a -> b -> c -> (r', r'')
(*^>*) :: (c -> r') -> (b -> d -> r'') -> a -> b -> (c, d) -> (r', r'')
(*^>&) :: (c -> r') -> (b -> c -> r'') -> a -> b -> c -> (r', r'')
(*^>>) :: r' -> (b -> c -> r'') -> a -> b -> c -> (r', r'')
(*^><) :: (c -> r') -> (b -> r'') -> a -> b -> c -> (r', r'')
(*^>^) :: r' -> (b -> r'') -> a -> b -> c -> (r', r'')
(*^<*) :: (b -> c -> r') -> (d -> r'') -> a -> b -> (c, d) -> (r', r'')
(*^<&) :: (b -> c -> r') -> (c -> r'') -> a -> b -> c -> (r', r'')
(*^<>) :: (b -> r') -> (c -> r'') -> a -> b -> c -> (r', r'')
(*^<<) :: (b -> c -> r') -> r'' -> a -> b -> c -> (r', r'')
(*^<^) :: (b -> r') -> r'' -> a -> b -> c -> (r', r'')
(*^^*) :: (c -> r') -> (d -> r'') -> a -> b -> (c, d) -> (r', r'')
(*^^&) :: (c -> r') -> (c -> r'') -> a -> b -> c -> (r', r'')
(*^^>) :: r' -> (c -> r'') -> a -> b -> c -> (r', r'')
(*^^<) :: (c -> r') -> r'' -> a -> b -> c -> (r', r'')
(*^^^) :: r' -> r'' -> a -> b -> c -> (r', r'')
(***) :: (a -> c -> r') -> (b -> d -> r'') -> (a, b) -> (c, d) -> (r', r'')
(**&) :: (a -> c -> r') -> (b -> c -> r'') -> (a, b) -> c -> (r', r'')
(**>) :: (a -> r') -> (b -> c -> r'') -> (a, b) -> c -> (r', r'')
(**<) :: (a -> c -> r') -> (b -> r'') -> (a, b) -> c -> (r', r'')
(**^) :: (a -> r') -> (b -> r'') -> (a, b) -> c -> (r', r'')
(*&*) :: (a -> b -> r') -> (a -> c -> r'') -> a -> (b, c) -> (r', r'')
(*&&) :: (a -> b -> r') -> (a -> b -> r'') -> a -> b -> (r', r'')
(*&>) :: (a -> r') -> (a -> b -> r'') -> a -> b -> (r', r'')
(*&<) :: (a -> b -> r') -> (a -> r'') -> a -> b -> (r', r'')
(*&^) :: (a -> r') -> (a -> r'') -> a -> b -> (r', r'')
(*>*) :: (b -> r') -> (a -> c -> r'') -> a -> (b, c) -> (r', r'')
(*>&) :: (b -> r') -> (a -> b -> r'') -> a -> b -> (r', r'')
(*>>) :: r' -> (a -> b -> r'') -> a -> b -> (r', r'')
(*><) :: (b -> r') -> (a -> r'') -> a -> b -> (r', r'')
(*>^) :: r' -> (a -> r'') -> a -> b -> (r', r'')
(*<*) :: (a -> b -> r') -> (c -> r'') -> a -> (b, c) -> (r', r'')
(*<&) :: (a -> b -> r') -> (b -> r'') -> a -> b -> (r', r'')
(*<>) :: (a -> r') -> (b -> r'') -> a -> b -> (r', r'')
(*<<) :: (a -> b -> r') -> r'' -> a -> b -> (r', r'')
(*<^) :: (a -> r') -> r'' -> a -> b -> (r', r'')
(*^*) :: (b -> r') -> (c -> r'') -> a -> (b, c) -> (r', r'')
(*^&) :: (b -> r') -> (b -> r'') -> a -> b -> (r', r'')
(*^>) :: r' -> (b -> r'') -> a -> b -> (r', r'')
(*^<) :: (b -> r') -> r'' -> a -> b -> (r', r'')
(*^^) :: r' -> r'' -> a -> b -> (r', r'')
(**) :: (a -> r') -> (b -> r'') -> (a, b) -> (r', r'')
(*&) :: (a -> r') -> (a -> r'') -> a -> (r', r'')
(*>) :: r' -> (a -> r'') -> a -> (r', r'')
(*<) :: (a -> r') -> r'' -> a -> (r', r'')
(*^) :: r' -> r'' -> a -> (r', r'')