|
| Control.Concurrent.Session.List |
|
|
| Description |
| Heterogeneous lists. This has been done many times, in many
different ways. Explicit constructors are hidden deliberately.
|
|
| Synopsis |
|
|
|
| Documentation |
|
|
Instances | |
|
|
|
Instances | | (TyListDrop cnt' nxt lst, Pred cnt cnt') => TyListDrop cnt (Cons val nxt) lst | | TyListTake (D0 E) (Cons val nxt) Nil | | (TyListTake cnt' nxt nxt', Pred (D9 r) cnt') => TyListTake (D9 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D8 r) cnt') => TyListTake (D8 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D7 r) cnt') => TyListTake (D7 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D6 r) cnt') => TyListTake (D6 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D5 r) cnt') => TyListTake (D5 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D4 r) cnt') => TyListTake (D4 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D3 r) cnt') => TyListTake (D3 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D2 r) cnt') => TyListTake (D2 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D1 r) cnt') => TyListTake (D1 r) (Cons val nxt) (Cons val nxt') | | TyListDrop (D0 E) (Cons val nxt) (Cons val nxt) | | (TyListLength n l, Succ l l', Show n, Show t) => Show (Cons t n) | | TyList nxt => TyList (Cons val nxt) | | (SValidSessionType nxt, SNonTerminal val) => SValidSessionType (Cons val nxt) | | STerminal a => SValidSessionType (Cons a Nil) | | (SValidSessionType val, SListOfSessionTypes nxt) => SListOfSessionTypes (Cons val nxt) | | (SListOfJumps nxt, TyNum val) => SListOfJumps (Cons (Cons (Jump val) Nil) nxt) | | (TyListLength n len, Succ len len') => TyListLength (Cons t n) len' | | (OnlyOutgoing nxt nxt', TyList nxt, TyList nxt') => OnlyOutgoing (Cons (Recv t) nxt) nxt' | | (SNoJumpsBeyond val idx, SNoJumpsBeyond nxt idx) => SNoJumpsBeyond (Cons val nxt) idx | | (TyListReverse' nxt (Cons v acc) n, TyList acc) => TyListReverse' (Cons v nxt) acc n | | (TyListIndex nxt idx' res, Pred idx idx', SmallerThan idx' len, TyListLength nxt len) => TyListIndex (Cons val nxt) idx res | | (Succ acc acc', TyListElem' nxt acc' val idx) => TyListElem' (Cons val' nxt) acc val idx | | TyListElem' (Cons val nxt) idx val idx | | TyListAppend nxt b nxt' => TyListAppend (Cons val nxt) b (Cons val nxt') | | TyListIndex (Cons res nxt) (D0 E) res | | OnlyOutgoing (Cons (Offer jl) Nil) (Cons (Choice jl) Nil) | | OnlyOutgoing (Cons (Select jl) Nil) (Cons (Choice jl) Nil) | | OnlyOutgoing (Cons (Jump l) Nil) (Cons (Jump l) Nil) | | (OnlyOutgoing nxt nxt', TyList nxt, TyList nxt') => OnlyOutgoing (Cons (Send t) nxt) (Cons t nxt') | | OnlyOutgoing (Cons End Nil) (Cons End Nil) | | (TyList nxt, TyList nxt', Dual val val', Dual nxt nxt') => Dual (Cons val nxt) (Cons val' nxt') | | (ProgramToMVarsOutgoing nxt nxt', OnlyOutgoing val val', TyList nxt, TyList nxt') => ProgramToMVarsOutgoing (Cons val nxt) (Cons (MVar (ProgramCell (Cell val'))) nxt') |
|
|
|
| class TyListLength list length | list -> length where | Source |
|
| Find the length of a list.
| | | Methods | | tyListLength :: list -> length | Source |
|
| | Instances | |
|
|
|
|
|
|
|
|
|
|
|
|
|
| Instances | |
|
|
| class TyListIndex lst idx res | lst idx -> res where | Source |
|
| Index or update a list. When updating, the type of the new value
must be the same as the type of the old value.
| | | Methods | | tyListIndex :: lst -> idx -> res | Source |
| | | tyListUpdate :: lst -> idx -> res -> lst | Source |
|
| | Instances | |
|
|
| class TyListUpdateVar lst1 idx val lst2 | lst1 idx val -> lst2 where | Source |
|
| Update a list but allow the type of the new value to be different
from the type of the old value.
| | | Methods | | tyListUpdateVar :: lst1 -> idx -> val -> lst2 | Source |
|
|
|
|
| class TyListTake cnt lst res | cnt lst -> res where | Source |
|
| Take from the head of a list. Mirrors the Prelude function take.
| | | Methods | | tyListTake :: cnt -> lst -> res | Source |
|
| | Instances | | TyListTake (D0 E) Nil Nil | | TyListTake (D0 E) Nil Nil | | TyListTake (D0 E) (Cons val nxt) Nil | | TyListTake (D0 E) (Cons val nxt) Nil | | TyListTake (D0 E) (Cons val nxt) Nil | | (TyListTake cnt' nxt nxt', Pred (D9 r) cnt') => TyListTake (D9 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D9 r) cnt') => TyListTake (D9 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D8 r) cnt') => TyListTake (D8 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D8 r) cnt') => TyListTake (D8 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D7 r) cnt') => TyListTake (D7 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D7 r) cnt') => TyListTake (D7 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D6 r) cnt') => TyListTake (D6 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D6 r) cnt') => TyListTake (D6 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D5 r) cnt') => TyListTake (D5 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D5 r) cnt') => TyListTake (D5 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D4 r) cnt') => TyListTake (D4 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D4 r) cnt') => TyListTake (D4 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D3 r) cnt') => TyListTake (D3 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D3 r) cnt') => TyListTake (D3 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D2 r) cnt') => TyListTake (D2 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D2 r) cnt') => TyListTake (D2 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D1 r) cnt') => TyListTake (D1 r) (Cons val nxt) (Cons val nxt') | | (TyListTake cnt' nxt nxt', Pred (D1 r) cnt') => TyListTake (D1 r) (Cons val nxt) (Cons val nxt') |
|
|
|
| class TyListDrop cnt lst res | cnt lst -> res where | Source |
|
| Drop from the head of a list. Mirrors the Prelude function drop.
| | | Methods | | tyListDrop :: cnt -> lst -> res | Source |
|
| | Instances | |
|
|
| class TyListAppend a b c | a b -> c where | Source |
|
| Append two lists together. Mirrors the Prelude function '(++)'.
| | | Methods | | tyListAppend :: a -> b -> c | Source |
|
| | Instances | |
|
|
| class TyListReverse m n | m -> n, n -> m where | Source |
|
|
|
| class TyListElem lst val idx | lst val -> idx where | Source |
|
|
|
| Produced by Haddock version 2.3.0 |