Thinking for the future, but I think it may be possible to introduce a "Maybe" object to axiom-types to represent something that is either nil or some specific type. It would need to wrap the type, and could encapsulate the `valid_or_optional?` test we use here.