|
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 |