-- 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 *^