Idris2Doc : Stellar.API.Morphism

Stellar.API.Morphism

(source)

Reexports

importpublic Stellar.Ops
importpublic Data.Sigma

Definitions

record(=&>) : API->API->Type
Totality: total
Visibility: public export
Constructor: 
(!!) : ((x : a.message) ->Σ (b.message) (\y=>b.responsey->a.responsex)) ->a=&>b

Projection: 
.continuation : a=&>b-> (x : a.message) ->Σ (b.message) (\y=>b.responsey->a.responsex)

Hints:
APIAlternative(=&>)(*)Maybe
APIBifunctor(=&>)(*)
APIFunctor(=&>)Maybe
APIFunctor(=&>)Maybe
APIMonad(=&>)Maybe
APIMonad(=&>)Maybe
APIPointed(=&>)Maybe
APIPointed(=&>)Maybe
Cartesian(=&>)(*)
Category(=&>)
PreorderAPI(=&>)
ReflexiveAPI(=&>)
TransitiveAPI(=&>)

Fixity Declaration: infixr operator, level 1
.continuation : a=&>b-> (x : a.message) ->Σ (b.message) (\y=>b.responsey->a.responsex)
Totality: total
Visibility: public export
continuation : a=&>b-> (x : a.message) ->Σ (b.message) (\y=>b.responsey->a.responsex)
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 1
bimapEx : a=&>b-> (t->s) ->Exat->Exbs
Totality: total
Visibility: export
parallel : c1=&>c2->c3=&>c4-> (c1//c3) =&> (c2//c4)
  Tensor is a bifunctor.

Totality: total
Visibility: public export
concurrent : c1=&>c2->c3=&>c4-> (c1*c3) =&> (c2*c4)
  Dirichlet is a bifunctor.

Totality: total
Visibility: public export
biSequence : a=&>b->a'=&>b'-> (a&>a') =&> (b&>b')
  Sequence is a bifunctor
/!\ This calls the continuation of `m2` twice /!\

Totality: total
Visibility: public export
choice : c1=&>c2->c3=&>c4-> (c1+c3) =&> (c2+c4)
  + is a bifunctor.

Totality: total
Visibility: export
swap : (a//b) =&> (b//a)
  Swap tensors

Totality: total
Visibility: public export
swap' : (x*y) =&> (y*x)
  Swap dirichelet

Totality: total
Visibility: public export
dia : (a+a) =&>a
  Diagonal on coproduct

Totality: total
Visibility: public export
dia3 : ((a+a) +a) =&>a
  Diagonal on coproduct

Totality: total
Visibility: public export
inl : 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 export
pairRUnit : (a//End) =&>a
  End is the neutral for //

Totality: total
Visibility: public export
left : a+Void->a
  Extract the left value

Totality: total
Visibility: public export
right : Void+b->b
  Extract the right value

Totality: total
Visibility: public export
sumLUnit : (Never+a) =&>a
  End is the neutral for //

Totality: total
Visibility: public export
sumRUnit : (a+Never) =&>a
  End is the neutral for //

Totality: total
Visibility: public export
compLUnit : (End&>c) =&>c
  End is the neutral for &>

Totality: total
Visibility: public export
compRUnit : (c&>End) =&>c
  End is the neutral for &>

Totality: total
Visibility: public export
comp2Unit : 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 export
state : a.message->Statea
  Build a state from a value.

Totality: total
Visibility: public export
Costate : API->Type
  Costate x is the same a x =&> 1

Totality: total
Visibility: public export
costate : ((x : a.message) ->a.responsex) ->Costatea
  Build a costate from a continuation.

Totality: total
Visibility: public export
extract : Costatea-> (x : a.message) ->a.responsex
  Extract the continuation from a costate

Totality: total
Visibility: public export
runCostate : Costatea-> (x : a.message) ->a.responsex
  Extract the continuation from a costate

Totality: total
Visibility: public export
.getVal : Statea->a.message
  Obtain the value from a state.

Totality: total
Visibility: public export
0Context : API->API->Type
  A context is both a State and a Costate.

Totality: total
Visibility: public export
map_Lift : Functorf=>a=&>b->Liftfa=&>Liftfb
Totality: total
Visibility: public export
counit : Monadm=>Liftma=&>a
  Given a monad m we get a counit.

Totality: total
Visibility: public export
comult : Monadm=>Liftma=&>Liftm (Liftma)
  Given a monad m we get a comulitiplication.

Totality: total
Visibility: public export
coKleisli : Monadm=>Liftma=&>b->Liftmb=&>c->Liftma=&>c
Totality: total
Visibility: export
pure : Comonadm=>a=&> (m$-a)
  Given a comonad we get a pure, or unit

Totality: total
Visibility: public export
join : Comonadm=> (m$- (m$-a)) =&> (m$-a)
  Given a comonad we get a join

Totality: total
Visibility: public export
distrib_plus : Liftf (a+b) =&> (Liftfa+Liftfb)
  Coproduct distributes over Lifts.

Totality: total
Visibility: public export
distrib_plus_3 : Liftf ((a+b) +c) =&> ((Liftfa+Liftfb) +Liftfc)
  Coproduct distributes over Lifts.

Totality: total
Visibility: public export
lift_IO : HasIOio=> (io$-a) =&> (IO$-a)
Totality: total
Visibility: export
run : (x : Statea) ->Costatea->a.response (x.getVal)
  We need both a state and costate to run a program.

Totality: total
Visibility: public export
seq2M : Monadm=>Costate (Liftma) ->Costate (Liftmb) ->Costate (Liftm (a&>b))
  We can sequence two monadic costates

Totality: total
Visibility: public export
runSequenceM3 : Monadm=> (input : State ((a&>b) &>c)) ->Costate (Liftma) ->Costate (Liftmb) ->Costate (Liftmc) ->m (((a&>b) &>c) .response (input.getVal))
  Sequence and run three monadic operations.

Totality: total
Visibility: public export
forward : (a->b) -> (a:-c) =&> (b:-c)
Totality: total
Visibility: export
backward : (a->b) -> (c:-b) =&> (c:-a)
Totality: total
Visibility: export
trace : Showa=>Show (bx) => (a!>b) =&> (a!>b)
Totality: total
Visibility: export
traceFwd : Showa=> (a!>b) =&> (a!>b)
Totality: total
Visibility: export
traceBwd : Show (bx) => (a!>b) =&> (a!>b)
Totality: total
Visibility: export