IdrisDoc: Control.Arrow

Control.Arrow

interface Arrow 
arrow : Arrow arr => (a -> b) -> arr a b
first : Arrow arr => arr a b -> arr (a, c) (b, c)
second : Arrow arr => arr a b -> arr (c, a) (c, b)
(***) : Arrow arr => arr a b -> arr a' b' -> arr (a, a') (b, b')
Fixity
Left associative, precedence 3
(&&&) : Arrow arr => arr a b -> arr a b' -> arr a (b, b')
Fixity
Left associative, precedence 3
interface ArrowApply 
app : ArrowApply arr => arr (arr a b, a) b
interface ArrowChoice 
left : ArrowChoice arr => arr a b -> arr (Either a c) (Either b c)
right : ArrowChoice arr => arr a b -> arr (Either c a) (Either c b)
(+++) : ArrowChoice arr => arr a b -> arr c d -> arr (Either a c) (Either b d)
Fixity
Left associative, precedence 2
(\|/) : ArrowChoice arr => arr a b -> arr c b -> arr (Either a c) b
Fixity
Left associative, precedence 2
interface ArrowLoop 
loop : ArrowLoop arr => arr (a, c) (b, c) -> arr a b
data ArrowMonad : (Type -> Type -> Type) -> Type -> Type
MkArrowMonad : (runArrowMonad : arr (the Type ()) a) -> ArrowMonad arr a
interface ArrowPlus 
(<++>) : ArrowPlus arr => arr a b -> arr a b -> arr a b
Fixity
Left associative, precedence 5
interface ArrowZero 
zeroArrow : ArrowZero arr => arr a b
default#&&& : Arrow arr => arr a b -> arr a b' -> arr a (b, b')
default#*** : Arrow arr => arr a b -> arr a' b' -> arr (a, a') (b, b')
default#+++ : ArrowChoice arr => arr a b -> arr c d -> arr (Either a c) (Either b d)
default#\|/ : ArrowChoice arr => arr a b -> arr c b -> arr (Either a c) b
default#right : ArrowChoice arr => arr a b -> arr (Either c a) (Either c b)
default#second : Arrow arr => arr a b -> arr (c, a) (c, b)
runArrowMonad : ArrowMonad arr a -> arr (the Type ()) a