Ned,
You do have to watch out for "== nil" (and #ifNil: #ifNotNil: etc. that end up doing "== nil"). There's a mixture of
isNil ifTrue: (which would work, as it's a message send) == nil ifTrue: (which wouldn't work) ifNil: (which also wouldn't)
etc. in Squeak.
Nah... I meant the "real thing", e.g., make UndefinedObject be "message eating" not some arbitrarily new object. All of the above should work perfectly well if you implement them.
Cheers, - Andreas