An environment with key
bound to value
; lookups for other keys
are forwarded to next
.
An environment without key
.
An environment without key
. Lookups for other keys
are forwarded to next.
Concatenate two environments with left-hand side precedence.
An empty environment.
An empty environment. No keys are present.
Retrieve the current definition of a key.
Retrieve the current definition of a key.
NoSuchElementException
when the key is undefined
in the current request-local context.
Tells whether key
is defined in the current request-local
context.
Retrieve the current definition of a key, but only if it is defined in the current request-local context.
Bind two keys and values in the scope of fn
.
Bind value
to key
in the scope of fn
.
Unbind the passed-in keys, in the scope of fn
.
A context contains a number of let-delimited bindings. Bindings are indexed by type Key[A] in a typesafe manner. Later bindings shadow earlier ones.
Note that the implementation of context maintains all bindings in a linked list; context lookup requires a linear search.