Better error message when using an instance variable that was never assigned (and say 'did you mean?' if there's a similar variable name)
Allow `(var = exp).is_a?(...)` and `(var = exp).responds_to?(...)` to restrict var's type