Many of these meanings seem to be captured in some modern solutions already:
- We plan to provide a value, but memory for this value hasn’t been allocated yet.
- The memory has been allocated, but we haven’t attempted to compute/retrieve the proper value yet
- We are in the process of computing/retrieving the value
Futures?
- There was a code-level problem computing/retrieving the value
Exception? Result
monads? (Okay, yea, we try to avoid the m word, but bear with me there)
- We successfully got the value, and the value is “the abstract concept of nothingness”
An Option
or Maybe
monad?
- or the value is “please use the default”
- or the value is “please try again”
An enumeration of return types would seem to solve this problem. I can picture doing this in Rust.
Looks like a GO bus. TTC would have a red accent on their labels.