 | full-sessions-0.4.187: yet another implementation of session types which does not require annotations | Source code | Contents | Index |
|
| Control.Concurrent.FullSession.Types |
|
|
|
| Synopsis |
|
|
|
| Documentation |
|
|
| capability -- from the implementation of Pucella and Tov
ex.
Cap Nil (Rec (Send Int (Var Z)))
== Cap (Send Int (Var Z):|:Nil) (Send Int (Var Z)) -- (by enter operation)
Cap (Send Int (Var Z):|:Nil) (Var Z)
== Cap (Send Int (Var Z):|:Nil) (Send Int (Var Z)) -- (by zero operation)
| Instances | | Comp c (Cap Nil End) c | | Comp (Cap Nil End) c c | | (TCast v v', TCast e e', TCast e' Nil) => Comp (Cap e (Var v)) (Cap e' (Var v')) (Cap e'' Bot) | | (Comp2 r r', TCast e e', TCast e' Nil) => Comp (Cap e (Rec r)) (Cap e' (Rec r')) (Cap e'' Bot) | | (Comp2 u u', Comp2 v v', TCast e e', TCast e' e'', TCast e' Nil) => Comp (Cap e (Offer u v)) (Cap e' (Select u' v')) (Cap e'' Bot) | | (Comp2 u u', Comp2 v v', TCast e e', TCast e' e'', TCast e' Nil) => Comp (Cap e (Select u v)) (Cap e' (Offer u' v')) (Cap e'' Bot) | | (Comp2 u u', TCast v v', TCast e e', TCast e' e'', TCast e' Nil) => Comp (Cap e (Catch v u)) (Cap e' (Throw v' u')) (Cap e'' Bot) | | (Comp2 u u', TCast v v', TCast e e', TCast e' e'', TCast e' Nil) => Comp (Cap e (Throw v u)) (Cap e' (Catch v' u')) (Cap e'' Bot) | | (Comp2 u u', TCast t t', TCast e e', TCast e' e'', TCast e' Nil) => Comp (Cap e (Recv t' u')) (Cap e' (Send t u)) (Cap e'' Bot) | | (Comp2 u u', TCast t t', TCast e e', TCast e' e'', TCast e' Nil) => Comp (Cap e (Send t u)) (Cap e' (Recv t' u')) (Cap e'' Bot) | | Comp (Cap Nil End) (Cap Nil End) (Cap Nil End) |
|
|
|
|
| no operation
| Instances | |
|
|
|
| send a value of type v then u
| Instances | |
|
|
|
| receive a value of type v then u
| Instances | |
|
|
|
| send a channel of session type u' then u
| Instances | |
|
|
|
| receive a channel of session type u' then u
| Instances | |
|
|
|
| recursion binding
| Instances | |
|
|
|
| recursion variable
| Instances | |
|
|
|
| this channel is (or, will be) owned by maximum two processes
|
|
|
|
| send a label i then ui (i in {1,2})
| Instances | |
|
|
|
| receive a label i then ui (i in {1,2})
| Instances | |
|
|
| Produced by Haddock version 2.4.2 |