> $VERBOSE = true => true > s1 = String.new => "" > s2 = String.new => "" > class << s1 > S1 = 1 > end => 1 > S1 NameError: uninitialized constant S1 from (irb):9 > String::S1 NameError: uninitialized constant String::S1 from (irb):10 > s1::S1 TypeError: (null) is not a class/module from (irb):11 > s2::S1 TypeError: (null) is not a class/module from (irb):12 > class << s1; p S1; end 1 => nil > s3 = s1.dup => "" > class << s3; p S1; end NameError: uninitialized constant String::S1 from (irb):15 > s4 = s1.clone => "" > class << s4; p S1; end 1 => nil > class << s1; self.constants; end => ["S1"] > class << s2; self.constants; end => [] > class << s3; self.constants; end => [] > class << s4; self.constants; end => ["S1"]