record (=&>) : API -> API -> Type- Totality: total
Visibility: public export
Constructor: (!!) : ((x : a .message) -> Σ (b .message) (\y => b .response y -> a .response x)) -> a =&> b
Projection: .continuation : a =&> b -> (x : a .message) -> Σ (b .message) (\y => b .response y -> a .response x)
Hints:
APIAlternative (=&>) (*) Maybe APIBifunctor (=&>) (*) APIFunctor (=&>) Maybe APIFunctor (=&>) Maybe APIMonad (=&>) Maybe APIMonad (=&>) Maybe APIPointed (=&>) Maybe APIPointed (=&>) Maybe Cartesian (=&>) (*) Category (=&>) Preorder API (=&>) Reflexive API (=&>) Transitive API (=&>)
Fixity Declaration: infixr operator, level 1 .continuation : a =&> b -> (x : a .message) -> Σ (b .message) (\y => b .response y -> a .response x)- Totality: total
Visibility: public export continuation : a =&> b -> (x : a .message) -> Σ (b .message) (\y => b .response y -> a .response x)- Totality: total
Visibility: public export .fwd : a =&> b -> a .message -> b .message- Totality: total
Visibility: export identity : a =&> a Identity of container morphisms
Totality: total
Visibility: public export(|&>) : a =&> b -> b =&> c -> a =&> c Composition of container morphisms
Totality: total
Visibility: public export
Fixity Declaration: infixr operator, level 1bimapEx : a =&> b -> (t -> s) -> Ex a t -> Ex b s- Totality: total
Visibility: export parallel : c1 =&> c2 -> c3 =&> c4 -> (c1 // c3) =&> (c2 // c4) Tensor is a bifunctor.
Totality: total
Visibility: public exportconcurrent : c1 =&> c2 -> c3 =&> c4 -> (c1 * c3) =&> (c2 * c4) Dirichlet is a bifunctor.
Totality: total
Visibility: public exportbiSequence : a =&> b -> a' =&> b' -> (a &> a') =&> (b &> b') Sequence is a bifunctor
/!\ This calls the continuation of `m2` twice /!\
Totality: total
Visibility: public exportchoice : c1 =&> c2 -> c3 =&> c4 -> (c1 + c3) =&> (c2 + c4) + is a bifunctor.
Totality: total
Visibility: exportswap : (a // b) =&> (b // a) Swap tensors
Totality: total
Visibility: public exportswap' : (x * y) =&> (y * x) Swap dirichelet
Totality: total
Visibility: public exportdia : (a + a) =&> a Diagonal on coproduct
Totality: total
Visibility: public exportdia3 : ((a + a) + a) =&> a Diagonal on coproduct
Totality: total
Visibility: public exportinl : a =&> (a + b)- Totality: total
Visibility: public export inr : b =&> (a + b)- Totality: total
Visibility: public export elimChoice : a =&> c -> b =&> c -> (a + b) =&> c- Totality: total
Visibility: export pairLUnit : (End // a) =&> a End is the neutral for //
Totality: total
Visibility: public exportpairRUnit : (a // End) =&> a End is the neutral for //
Totality: total
Visibility: public exportleft : a + Void -> a Extract the left value
Totality: total
Visibility: public exportright : Void + b -> b Extract the right value
Totality: total
Visibility: public exportsumLUnit : (Never + a) =&> a End is the neutral for //
Totality: total
Visibility: public exportsumRUnit : (a + Never) =&> a End is the neutral for //
Totality: total
Visibility: public exportcompLUnit : (End &> c) =&> c End is the neutral for &>
Totality: total
Visibility: public exportcompRUnit : (c &> End) =&> c End is the neutral for &>
Totality: total
Visibility: public exportcomp2Unit : a =&> End -> b =&> End -> (a &> b) =&> End- Totality: total
Visibility: public export State : API -> Type State x is the same a 1 =&> x
Totality: total
Visibility: public exportstate : a .message -> State a Build a state from a value.
Totality: total
Visibility: public exportCostate : API -> Type Costate x is the same a x =&> 1
Totality: total
Visibility: public exportcostate : ((x : a .message) -> a .response x) -> Costate a Build a costate from a continuation.
Totality: total
Visibility: public export Extract the continuation from a costate
Totality: total
Visibility: public exportrunCostate : Costate a -> (x : a .message) -> a .response x Extract the continuation from a costate
Totality: total
Visibility: public export.getVal : State a -> a .message Obtain the value from a state.
Totality: total
Visibility: public export0 Context : API -> API -> Type A context is both a State and a Costate.
Totality: total
Visibility: public exportmap_Lift : Functor f => a =&> b -> Lift f a =&> Lift f b- Totality: total
Visibility: public export counit : Monad m => Lift m a =&> a Given a monad m we get a counit.
Totality: total
Visibility: public exportcomult : Monad m => Lift m a =&> Lift m (Lift m a) Given a monad m we get a comulitiplication.
Totality: total
Visibility: public exportcoKleisli : Monad m => Lift m a =&> b -> Lift m b =&> c -> Lift m a =&> c- Totality: total
Visibility: export pure : Comonad m => a =&> (m $- a) Given a comonad we get a pure, or unit
Totality: total
Visibility: public exportjoin : Comonad m => (m $- (m $- a)) =&> (m $- a) Given a comonad we get a join
Totality: total
Visibility: public exportdistrib_plus : Lift f (a + b) =&> (Lift f a + Lift f b) Coproduct distributes over Lifts.
Totality: total
Visibility: public exportdistrib_plus_3 : Lift f ((a + b) + c) =&> ((Lift f a + Lift f b) + Lift f c) Coproduct distributes over Lifts.
Totality: total
Visibility: public exportlift_IO : HasIO io => (io $- a) =&> (IO $- a)- Totality: total
Visibility: export run : (x : State a) -> Costate a -> a .response (x .getVal) We need both a state and costate to run a program.
Totality: total
Visibility: public exportseq2M : Monad m => Costate (Lift m a) -> Costate (Lift m b) -> Costate (Lift m (a &> b)) We can sequence two monadic costates
Totality: total
Visibility: public exportrunSequenceM3 : Monad m => (input : State ((a &> b) &> c)) -> Costate (Lift m a) -> Costate (Lift m b) -> Costate (Lift m c) -> m (((a &> b) &> c) .response (input .getVal)) Sequence and run three monadic operations.
Totality: total
Visibility: public exportforward : (a -> b) -> (a :- c) =&> (b :- c)- Totality: total
Visibility: export backward : (a -> b) -> (c :- b) =&> (c :- a)- Totality: total
Visibility: export trace : Show a => Show (b x) => (a !> b) =&> (a !> b)- Totality: total
Visibility: export traceFwd : Show a => (a !> b) =&> (a !> b)- Totality: total
Visibility: export traceBwd : Show (b x) => (a !> b) =&> (a !> b)- Totality: total
Visibility: export