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
interfaceArrowApply : (Type -> Type -> Type) -> Type
Parameters: arr
Constraints: Arrow arr
Methods:
app : arr (arrab, a) b

Implementation:
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:
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:
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)
`  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.`