interface Arrow : (Type -> Type -> Type) -> Type
- Parameters: arr
Constraints: Category arr
Methods:
arrow : (a -> b) -> arr a b
Converts a function from input to output into a arrow computation.
first : arr a b -> 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 : arr a b -> 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.
(***) : arr a b -> arr a' b' -> arr (a, a') (b, b')
A combinator which processes both components of a pair.
Fixity Declaration: infixr operator, level 3 (&&&) : arr a b -> arr a b' -> arr a (b, b')
A combinator which builds a pair from the results of two arrows.
Fixity Declaration: infixr operator, level 3
Implementations:
Arrow Morphism
Monad m => Arrow (Kleislimorphism m)
arrow : Arrow arr => (a -> b) -> arr a b
Converts a function from input to output into a arrow computation.
Visibility: public exportfirst : Arrow arr => arr a b -> 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.
Visibility: public exportsecond : Arrow arr => arr a b -> 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.
Visibility: public export(***) : Arrow arr => arr a b -> arr a' b' -> arr (a, a') (b, b')
A combinator which processes both components of a pair.
Visibility: public export
Fixity Declaration: infixr operator, level 3(&&&) : Arrow arr => arr a b -> arr a b' -> arr a (b, b')
A combinator which builds a pair from the results of two arrows.
Visibility: public export
Fixity Declaration: infixr operator, level 3interface ArrowZero : (Type -> Type -> Type) -> Type
- Parameters: arr
Constraints: Arrow arr
Methods:
zeroArrow : arr a b
Implementation: ArrowPlus arr -> ArrowZero arr
zeroArrow : ArrowZero arr => arr a b
- Visibility: public export
interface ArrowPlus : (Type -> Type -> Type) -> Type
- Parameters: arr
Constraints: ArrowZero arr
Methods:
(<++>) : arr a b -> arr a b -> arr a b
- Fixity Declaration: infixr operator, level 5
(<++>) : ArrowPlus arr => arr a b -> arr a b -> arr a b
- Visibility: public export
Fixity Declaration: infixr operator, level 5 interface ArrowChoice : (Type -> Type -> Type) -> Type
- Parameters: arr
Constraints: Arrow arr
Methods:
left : arr a b -> arr (Either a c) (Either b c)
right : arr a b -> arr (Either c a) (Either c b)
(+++) : arr a b -> arr c d -> arr (Either a c) (Either b d)
- Fixity Declaration: infixr operator, level 2
(\|/) : arr a b -> arr c b -> arr (Either a c) b
- Fixity Declaration: infixr operator, level 2
Implementation: Monad m => ArrowChoice (Kleislimorphism m)
left : ArrowChoice arr => arr a b -> arr (Either a c) (Either b c)
- Visibility: public export
right : ArrowChoice arr => arr a b -> arr (Either c a) (Either c b)
- Visibility: public export
(+++) : ArrowChoice arr => arr a b -> arr c d -> arr (Either a c) (Either b d)
- Visibility: public export
Fixity Declaration: infixr operator, level 2 (\|/) : ArrowChoice arr => arr a b -> arr c b -> arr (Either a c) b
- Visibility: public export
Fixity Declaration: infixr operator, level 2 interface ArrowApply : (Type -> Type -> Type) -> Type
- Parameters: arr
Constraints: Arrow arr
Methods:
app : arr (arr a b, a) b
Implementation: Monad m => ArrowApply (Kleislimorphism m)
app : ArrowApply arr => arr (arr a b, a) b
- Visibility: public export
data ArrowMonad : (Type -> Type -> Type) -> Type -> Type
- Totality: total
Visibility: public export
Constructor: MkArrowMonad : arr () a -> ArrowMonad arr a
Hints:
Arrow a => Applicative (ArrowMonad a)
Arrow a => Functor (ArrowMonad a)
ArrowApply a => Monad (ArrowMonad a)
runArrowMonad : ArrowMonad arr a -> arr () a
- Visibility: public export
interface ArrowLoop : (Type -> Type -> Type) -> Type
- Parameters: arr
Constraints: Arrow arr
Methods:
loop : arr (a, c) (b, c) -> arr a b
loop : ArrowLoop arr => arr (a, c) (b, c) -> arr a b
- Visibility: public export
liftA2 : Arrow arr => (a -> b -> c) -> arr d a -> arr d b -> arr d c
Applying a binary operator to the results of two arrow computations.
Visibility: public export