
Smalltalk as usual is consistent
nil is the Singleton instance of UndefinedObject and all Objects are initialized to it. This simplifies many things and is very powerful, for example, when trying to print something, you don't need code that explicitly checks for nil as UndefinedObject understands how to print itself. This also allows you to add all kinds of behaviour to nil objects if needed.