A Function that creates a reference.
The referenced object and a function that returns the same object if the reference is still valid.
The type of the referenced object.
A function that can create a new T.