Idris2Doc : Control.Arrow

Control.Arrow

(&&&) : Arrowarr => arrab -> arrab' -> arra (b, b')
  A combinator which builds a pair from the results of two arrows.


Fixity Declaration: infixr operator, level 3
(***) : Arrowarr => arrab -> arra'b' -> arr (a, a') (b, b')
  A combinator which processes both components of a pair.


Fixity Declaration: infixr operator, level 3
(+++) : ArrowChoicearr => arrab -> arrcd -> arr (Eitherac) (Eitherbd)

Fixity Declaration: infixr operator, level 2
(<++>) : ArrowPlusarr => arrab -> arrab -> arrab

Fixity Declaration: infixr operator, level 5
interfaceArrow : (Type -> Type -> Type) -> Type
Parameters: arr
Constraints: Category arr
Methods:
arrow : (a -> b) -> arrab
  Converts a function from input to output into a arrow computation.
first : arrab -> arr (a, c) (b, c)
  Converts an arrow from `a` to `b` into an arrow on pairs, that applies
its argument to the first component and leaves the second component
untouched, thus saving its value across a computation.
second : arrab -> arr (c, a) (c, b)
  Converts an arrow from `a` to `b` into an arrow on pairs, that applies
its argument to the second component and leaves the first component
untouched, thus saving its value across a computation.
(***) : arrab -> arra'b' -> arr (a, a') (b, b')
  A combinator which processes both components of a pair.

Fixity Declaration: infixr operator, level 3
(&&&) : arrab -> arrab' -> arra (b, b')
  A combinator which builds a pair from the results of two arrows.

Fixity Declaration: infixr operator, level 3

Implementations:
ArrowMorphism
Monadm => Arrow (Kleislimorphismm)
interfaceArrowApply : (Type -> Type -> Type) -> Type
Parameters: arr
Constraints: Arrow arr
Methods:
app : arr (arrab, a) b

Implementation: 
Monadm => ArrowApply (Kleislimorphismm)
interfaceArrowChoice : (Type -> Type -> Type) -> Type
Parameters: arr
Constraints: Arrow arr
Methods:
left : arrab -> arr (Eitherac) (Eitherbc)
right : arrab -> arr (Eitherca) (Eithercb)
(+++) : arrab -> arrcd -> arr (Eitherac) (Eitherbd)
Fixity Declaration: infixr operator, level 2
(\|/) : arrab -> arrcb -> arr (Eitherac) b
Fixity Declaration: infixr operator, level 2

Implementation: 
Monadm => ArrowChoice (Kleislimorphismm)
interfaceArrowLoop : (Type -> Type -> Type) -> Type
Parameters: arr
Constraints: Arrow arr
Methods:
loop : arr (a, c) (b, c) -> arrab
dataArrowMonad : (Type -> Type -> Type) -> Type -> Type
Totality: total
Constructor: 
MkArrowMonad : arr (theType ()) a -> ArrowMonadarra
interfaceArrowPlus : (Type -> Type -> Type) -> Type
Parameters: arr
Constraints: ArrowZero arr
Methods:
(<++>) : arrab -> arrab -> arrab
Fixity Declaration: infixr operator, level 5
interfaceArrowZero : (Type -> Type -> Type) -> Type
Parameters: arr
Constraints: Arrow arr
Methods:
zeroArrow : arrab

Implementation: 
ArrowPlusarr -> ArrowZeroarr
(\|/) : ArrowChoicearr => arrab -> arrcb -> arr (Eitherac) b

Fixity Declaration: infixr operator, level 2
app : ArrowApplyarr => arr (arrab, a) b
arrow : Arrowarr => (a -> b) -> arrab
  Converts a function from input to output into a arrow computation.

first : Arrowarr => arrab -> arr (a, c) (b, c)
  Converts an arrow from `a` to `b` into an arrow on pairs, that applies
its argument to the first component and leaves the second component
untouched, thus saving its value across a computation.

left : ArrowChoicearr => arrab -> arr (Eitherac) (Eitherbc)
liftA2 : Arrowarr => (a -> b -> c) -> arrda -> arrdb -> arrdc
  Applying a binary operator to the results of two arrow computations.

loop : ArrowLooparr => arr (a, c) (b, c) -> arrab
right : ArrowChoicearr => arrab -> arr (Eitherca) (Eithercb)
runArrowMonad : ArrowMonadarra -> arr (theType ()) a
second : Arrowarr => arrab -> arr (c, a) (c, b)
  Converts an arrow from `a` to `b` into an arrow on pairs, that applies
its argument to the second component and leaves the first component
untouched, thus saving its value across a computation.

zeroArrow : ArrowZeroarr => arrab