"Nil... it's a constant, so you have to use =:= to check for equality."
Can you elaborate on that requirement? == works for an equality checks with numeric constants- must be more than Nil's constant-ness that makes one use =:= - perhaps that Nil doesn't numify to anything?