Environment with deferred evaluation and default values.
Sets the value of the reference at key.
Returns a reference to the object at key.
Copies the environment into a new one, with each placeholder being copied as well.
Sets the value of the key directly. This method is mainly used internally.
Specify what placeholder object the environment uses by supplying a class name (Symbol). The default is a Maybe. Any object that responds to the methods source, source_ and clear can be a placeholder.
Removes the placeholder from the environment and clears it.
Returns a new placeholder object. This is used internally and can be overridden to implement other lazy environments.