C++ and rust make these optionals ugly. Zig does it right. Zig also forbids null pointers and requires use of optionals.