|
| Control.Concurrent.Session.Types |
|
|
|
| Synopsis |
|
|
|
| Documentation |
|
|
|
|
|
|
|
| class ProgramToMVarsOutgoing progRef prog mvars | progRef prog -> mvars where | Source |
|
| | Associated Types | | type ProgramToMVarsOutgoingT progRef prog | Source |
|
| | | Methods | | programToMVarsOutgoing :: progRef -> prog -> IO mvars | Source |
|
| | Instances | |
|
|
|
|
|
| newtype SessionChain prog prog' from to res | Source |
|
| The representation of a computation that performs work using
session types. Again, really quite similar to a more-parameterized
State monad.
| | Constructors | | Instances | |
|
|
|
|
|
| A process ID. This is a tiny bit like ThreadId but rather heavily annotated.
| | Constructors | | Pid :: RawPid -> TyMap sessionsToIdx idxsToPairStructs -> Pid prog prog' invertedSessions sessionsToIdx idxsToPairStructs | |
| Instances | | (TySubList invertedSessionsB invertedSessionsA True, TySubList sessionsToIdxB sessionsToIdxA True, ReducePairStructs (TyMap sessionsToIdxA idxsToPairStructsA) (TyMap sessionsToIdxB idxsToPairStructsB) (TyMap Nil Nil) (TyMap sessionsToIdxB idxsToPairStructsB)) => CompatibleTypes SpecialPid (Pid prog prog' invertedSessionsA sessionsToIdxA idxsToPairStructsA) (Pid prog prog' invertedSessionsB sessionsToIdxB idxsToPairStructsB) | | Eq (Pid prog prog' invertedSessions sessionsToIdx idxsToPairStructs) | | Ord (Pid prog prog' invertedSessions sessionsToIdx idxsToPairStructs) | | Show (Pid prog prog' invertedSessions sessionsToIdx idxsToPairStructs) | | PidEq (Pid progA progA' invertedSessionsA sessionsToIdxA idxsToPairStructsA) (Pid progB progB' invertedSessionsB sessionsToIdxB idxsToPairStructsB) |
|
|
|
|
| Constructors | | IPid :: Pid prog prog' invertedSessions sessionsToIdx idxsToPairStructs -> [RawPid] -> InternalPid prog prog' invertedSessions sessionsToIdx idxsToPairStructs | |
| Instances | |
|
|
| pidToRawPid :: Pid prog prog' invertedSessions sessionsToIdx idxsToPairStructs -> RawPid | Source |
|
|
| iPidToPid :: InternalPid prog prog' invertedSessions sessionsToIdx idxsToPairStructs -> Pid prog prog' invertedSessions sessionsToIdx idxsToPairStructs | Source |
|
|
|
| Provides a way to compare two Pids. Of course, if the Pids have
different type params, then they are definitely different, but it's
still convenient to be able to do something like (==) on them.
| | | Methods | | | Instances | | PidEq (Pid progA progA' invertedSessionsA sessionsToIdxA idxsToPairStructsA) (Pid progB progB' invertedSessionsB sessionsToIdxB idxsToPairStructsB) |
|
|
|
| newtype InterleavedChain internalPid from to res | Source |
|
| Constructors | | InterleavedChain | | | runInterleavedChain :: internalPid -> from -> IO (res, to, internalPid) | |
|
| Instances | |
|
|
|
Instances | |
|
|
|
Instances | | (TySubList invertedSessionsB invertedSessionsA True, TySubList sessionsToIdxB sessionsToIdxA True, ReducePairStructs (TyMap sessionsToIdxA idxsToPairStructsA) (TyMap sessionsToIdxB idxsToPairStructsB) (TyMap Nil Nil) (TyMap sessionsToIdxB idxsToPairStructsB)) => CompatibleTypes SpecialPid (Pid prog prog' invertedSessionsA sessionsToIdxA idxsToPairStructsA) (Pid prog prog' invertedSessionsB sessionsToIdxB idxsToPairStructsB) |
|
|
|
|
Instances | |
|
|
|
| Constructors | | Instances | |
|
|
| Produced by Haddock version 2.4.2 |