- (&&&) : Arrow arr => 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- (***) : Arrow arr => 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- (+++) : ArrowChoice arr => arr a b -> arr c d -> arr (Either a c) (Either b d)
-
Fixity Declaration: infixr operator, level 2 - (<++>) : ArrowPlus arr => arr a b -> arr a b -> arr a b
-
Fixity Declaration: infixr operator, level 5 - 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)
- 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)
- 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)
- interface ArrowLoop : (Type -> Type -> Type) -> Type
- Parameters: arr
Constraints: Arrow arr
Methods:
- loop : arr (a, c) (b, c) -> arr a b
- data ArrowMonad : (Type -> Type -> Type) -> Type -> Type
- Totality: total
Constructor: - MkArrowMonad : arr (the Type ()) a -> ArrowMonad arr a
- 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
- interface ArrowZero : (Type -> Type -> Type) -> Type
- Parameters: arr
Constraints: Arrow arr
Methods:
- zeroArrow : arr a b
Implementation: - ArrowPlus arr -> ArrowZero arr
- (\|/) : ArrowChoice arr => arr a b -> arr c b -> arr (Either a c) b
-
Fixity Declaration: infixr operator, level 2 - app : ArrowApply arr => arr (arr a b, a) b
-
- arrow : Arrow arr => (a -> b) -> arr a b
Converts a function from input to output into a arrow computation.
- first : 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.
- left : ArrowChoice arr => arr a b -> arr (Either a c) (Either b c)
-
- 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.
- loop : ArrowLoop arr => arr (a, c) (b, c) -> arr a b
-
- right : ArrowChoice arr => arr a b -> arr (Either c a) (Either c b)
-
- runArrowMonad : ArrowMonad arr a -> arr (the Type ()) a
-
- second : 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.
- zeroArrow : ArrowZero arr => arr a b
-