TL;DR: This work examines the consequences of the introduction of a safe navigation operator to OCL, identifies further OCL refinements that are needed to make safe navigation useable, and identifies the null object.
Abstract: The null object has been useful and troublesome ever since it was introduced. The problems have been mitigated by references in C++, annotations in Java or safe navigation in Groovy, Python and Xbase. Introduction of a safe navigation operator to OCL has some rather unpleasant consequences. We examine these consequences and identify further OCL refinements that are needed to make safe navigation useable.