|
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 | TyList set => TyListConsSet' False e set (Cons e set) | (TyListDrop cnt' nxt lst, Pred cnt cnt') => TyListDrop cnt (Cons val nxt) lst | (ProgramToMVarsOutgoing ref nxt nxt', TyList nxt, TyList nxt') => ProgramToMVarsOutgoing ref (Cons val nxt) (Cons (MVar (ProgramCell (Cell val'))) nxt') | (BuildPidTyMap' prog nxt (TyMap keyToIdx idxToValue) (TyMap keyToIdx' idxToValue'), TyList nxt) => BuildPidTyMap' prog (Cons ((,) init True) nxt) (TyMap keyToIdx idxToValue) (TyMap keyToIdx' idxToValue') | (BuildPidTyMap' prog nxt (TyMap keyToIdx' idxToValue') (TyMap keyToIdx'' idxToValue''), MapInsert (TyMap keyToIdx idxToValue) init (MVar (Map ((,) RawPid RawPid) (MVar (PairStruct init prog prog' ((,) fromO fromI))))) (TyMap keyToIdx' idxToValue'), TyList nxt) => BuildPidTyMap' prog (Cons ((,) init False) nxt) (TyMap keyToIdx idxToValue) (TyMap keyToIdx'' idxToValue'') | 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) | (TyListToSet nxt set, TyListConsSet v set set') => TyListToSet (Cons v nxt) set' | (TyListLength n len, Succ len len') => TyListLength (Cons t n) len' | (SNoJumpsBeyond val idx, SNoJumpsBeyond nxt idx) => SNoJumpsBeyond (Cons val nxt) idx | TyListMember nxt val res => TyListMember (Cons val' nxt) val res | TyListMember (Cons val nxt) val True | (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 | (TyNum num, MakeListOfJumps nxt nxt', TyList nxt, TyList nxt') => MakeListOfJumps (Cons ((,) num invert) nxt) (Cons (Cons (Jump num) Nil) nxt') | (TyList nxt, TyList nxt', Dual val val', Dual nxt nxt') => Dual (Cons val nxt) (Cons 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 |
|
| Methods | tyListElem :: lst -> val -> idx | Source |
|
|
|
|
class TyListMember lst val res | lst val -> res where | Source |
|
| Methods | isTyListMember :: val -> lst -> res | Source |
|
| | Instances | |
|
|
class TyListConsSet e set set' | e set -> set' where | Source |
|
| Methods | tyListConsSet :: e -> set -> set' | Source |
|
|
|
|
class TyListToSet lst set | lst -> set where | Source |
|
| Methods | tyListToSet :: lst -> set | Source |
|
| | Instances | |
|
|
Produced by Haddock version 2.3.0 |