Aren't null pointers just a variation on the Maybe Monad?
1. you don't have the attending type-safety of knowing that some pointers can't be null
2. the compiler requiring checking for nullity before every pointer access would be horrendously unwieldy
[0] which can then be compiled back to a regular nullable pointer at runtime
E.g.,
Int*** x;
Can be a lot like Maybe Maybe Maybe Int
It's just that in languages where a type like Integer really means “an integer or a null", the nullability doesn't nest, and no one wants to deal with naked pointers.