What are some guidelines for when it is not necessary to check for a null?
A lot of the inherited code I\'ve been working on as of late has null-checks
Lower level code should check use from higher level code. Usually this means checking arguments, but it can mean checking return values from upcalls. Upcall arguments need not be checked.
The aim is to catch bugs in immediate and obvious ways, as well as documenting the contract in code that does not lie.