|
| Control.Concurrent.Session.SessionType |
|
|
| Description |
This module is concerned with allowing you to describe a session
type. A session type is treated as a table or 2D array, where each
row represents a particular session type function which can refer,
by index, to the other rows.
Basically, what you have here is the ability to describe a
program at the type level.
Just look at Control.Concurrent.Session.Tests for examples
|
|
|
| Documentation |
|
|
| Constructors | | Instances | |
|
|
|
|
|
|
|
|
| data SendPid inverted lst | Source |
|
| Constructors | | Instances | |
|
|
| data RecvPid inverted lst | Source |
|
| Constructors | | Instances | |
|
|
|
| Constructors | | Instances | |
|
|
|
| Constructors | | Instances | |
|
|
|
| Constructors | | Instances | |
|
|
|
|
|
| Constructors | | Select :: lstOfLabels -> Select lstOfLabels | |
| Instances | |
|
|
|
|
|
| Constructors | | Offer :: lstOfLabels -> Offer lstOfLabels | |
| Instances | |
|
|
|
|
| class Dual a b | a -> b, b -> a where | Source |
|
| | Associated Types | | | | Methods | | | Instances | |
|
|
|
| Instances | |
|
|
| class SListOfSessionTypes lstOfLists | Source |
|
| Instances | |
|
|
|
| Instances | |
|
|
|
| Instances | |
|
|
| class SValidSessionType lst | Source |
|
| Instances | |
|
|
|
|
|
|
| class SNoJumpsBeyond s idx | Source |
|
| Instances | |
|
|
| class MakeListOfJumps x y | x -> y where | Source |
|
| | Methods | | makeListOfJumps :: x -> y | Source |
|
| | Instances | |
|
|
| class SWellFormedConfig idxA idxB ss | Source |
|
|
|
|
|
|
| Constructors | | Choice :: lstOfLabels -> Choice lstOfLabels | |
|
|
|
| type family Outgoing prog frag | Source |
|
|
| class ExpandPids p a b | p a -> b where | Source |
|
| | Methods | | expandPids :: p -> a -> b | Source |
|
| | Instances | | ExpandPids p (Cons (Select loj) Nil) (Cons (Select loj) Nil) | | ExpandPids p (Cons (Offer loj) Nil) (Cons (Offer loj) Nil) | | ExpandPids p (Cons (Jump l) Nil) (Cons (Jump l) Nil) | | (ExpandPids p nxt nxt', TyList nxt, TyList nxt') => ExpandPids p (Cons (Send t) nxt) (Cons (Send t) nxt') | | (ExpandPids p nxt nxt', TyList nxt, TyList nxt') => ExpandPids p (Cons (Recv t) nxt) (Cons (Recv t) nxt') | | ExpandPids p (Cons End Nil) (Cons End Nil) | | (ExpandPids prog nxt nxt', TyList nxt, TyList nxt', BuildPidTyMap progO t (TyMap sessionsToIdx idxsToPairStructs), If invert prog' prog progO, Dual prog prog', Dual progO progO') => ExpandPids prog (Cons (SendPid invert t) nxt) (Cons (Send (Pid progO progO' sessionsToIdx idxsToPairStructs)) nxt') | | (ExpandPids prog nxt nxt', TyList nxt, TyList nxt', BuildPidTyMap progO t (TyMap sessionsToIdx idxsToPairStructs), If invert prog' prog progO, Dual prog prog', Dual progO progO') => ExpandPids prog (Cons (RecvPid invert t) nxt) (Cons (Recv (Pid progO progO' sessionsToIdx idxsToPairStructs)) nxt') |
|
|
|
| Produced by Haddock version 2.3.0 |