>>8monads are a nice syntax for doing that, but I'd say having nulls be their own type as opposed to a pointer to address 0, and nullable functions either having multiple returns or returning a union of actual return and null, would be enough for compiler-enforced null checking. monadic error handling makes it less boilerplatey, which is a big plus.