A cell that evaluates its value on demand. Cell access is unsychronized
for performance reasons. However the cell may be safely accessed from multiple threads
provided its create method is idempotent.
Create a value.
Create a value. This method is called when the lazy cell is first accessed.
After it is first accessed the value will be cached. There is a chance this
method will be called more than once if the cell is accessed from multiple
A value of type A that indicates the cell hasn't been evaluated.
A value of type A that indicates the cell hasn't been evaluated. Common
values are null, None or 0. It's important the marker is not a valid
Whether or not the cell value has been evaluated yet.
Whether or not the cell value has been evaluated yet. Sometimes it is useful
to know this to avoid unnecessarily evaluating the cell value.
The value in the cell.
The value in the cell. Calling this method may force the value to be evaluated.