1. Difference between behavior of local variables and constants:

This works:

(x = 1, puts(x), x)

But this doesn't:

(A = 1, puts(A), A)


2. Bad side effect during global constant assignment:

class C
end

class << C
  Bar = self
  p name
end

class D
end

class << D
  ::Foo = self
  p name
end

Thanks,
-John