When working with raw pointers, using NonNull<T> and sometimes Option<NonNull<T>> can be more ergonomic. However, some APIs, e.g. AtomicPtr, requires raw pointers. NonNull has a as_ptr method, but when it comes to Option<NonNull<T>>, map_or(ptr::null_mut(), NonNull::as_ptr) is cumbersome.
Option already have a few specialized methods, likeOption<(T, U)>::unzip. Adding Option<NonNull<T>>::as_ptr feels natural and would improve NonNull ergonomics by a lot.