package affect
Module Cell.DropSource
Drop cells.
A drop cell is a cell on which functions can exchange values:
- A
Drop.takeblocks until the cell is full and empties the cell. - A
Drop.putblocks until the cell is empty and fills the cell.
Cells
The type for drop cells with value of type 'a.
take cell blocks until the cell is full with v, empties the cell and continues with v. If there are multiple blocked take and a single put occurs, only the earliest take unblocks.
put cell v blocks until the cell is empty and fills it with v. If there are multiple blocked put on the same cell and a single take occurs, only the earliest put unblocks.
Predicate
Actions
take' cell is the action for take. An action invocation is enabled when cell is filled with a value v. The invocation synchronizes with v if it manages to empty the cell by taking v.