#RubyLang #WTF question. Instance vars are #autovivified as `nil`, but locals must be defined to avoid raising #NameError. This works unless you assign the same #lvar on the RHS.
```ruby
a
#=> undefined local variable or method `a' for main (NameError)
a = a
#=> nil
a
#=> nil
defined?(a) == "local-variable"
#=> true
a = b
#=> undefined local variable or method `b' for main (NameError)
@c
#=> nil
```
Why special rules for undefined RHS lvars, but only for self-assignment? Bug or use case?