An implementation of the Optional type, which helps avoid dealing with null references