"I am managing the lifetime of this pointer myself" and "I might have null instead of a pointer" should be orthogonal concepts. I suggest: - Rust `*T` is always non-null - C++ `*T` maps to Rust `option<*T>` in bindings (depends on #1271) - `ptr::null`, `ptr::is_null`, and `ptr::is_not_null` go away This would help clarify code that uses unsafe pointers.