A reference gives a data and a function to later check the validity and retrieve that data.
The value of the reference at the time of reference creation.
A function that returns the value of the reference, or null if the reference has become invalid, when later needed.