Package avail. interpreter. primitive. variables
Types
Primitive: Add a write reactor to the specified variable. The supplied key may be used subsequently to remove the write reactor.
Primitive: Atomically read and update the map in the specified variable by adding the given key and value.
Primitive: Atomically read and conditionally overwrite the specified variable. The overwrite occurs only if the value read from the variable equals the reference value.
Primitive: Atomically read and overwrite the specified variable.
Primitive: Atomically read and update the map in the specified variable by removing the given key, if present. If not present, this has no effect.
Primitive: Clear the variable.
Primitive: Answer a variable type with the specified read and write types.
Primitive: Create a variable type using the given inner type.
Primitive: Disable variable read-before-write tracing for the current fiber. To each variable that survived tracing, add a write reactor that wraps the specified function, associating it with the specified atom (for potential pre-activation removal).
Primitive: Disable variable write tracing for the current fiber. For each variable that survived tracing, accumulate the variable's write reactorfunctions into a set. Clear the write reactors for each variable written. Answer the set of functions.
Primitive: There are two possibilities. The variable is mutable, in which case we want to destroy it, or the variable is immutable, in which case we want to make sure the extracted value becomes immutable (in case the variable is being held onto by something). Since the primitive invocation code is going to erase it if it's mutable anyhow, only the second case requires any real work.
Primitive: Remove the write reactor associated with the specified key.
Primitive: Enable variable read-before-write tracing for the current fiber.
Primitive: Enable variable write tracing for the current fiber.
Primitive: Extract the read type of a variable type.
Primitive: Extract the write type of a variable type.