nil_or implementation + specs