From: timr Date: 2011-01-03T13:35:26+09:00 Subject: Re: 1.respond_to? :define_singleton_method # => true It looks like there are two classes, Fixnum and Symbol, that produce objects which cannot have singleton methods. This is the only practical difference between these classes and regularly referenced classes. From Matz' Orielly book: 3.8.1.1 Immediate values We've said that all values in Ruby are objects and all objects are manipulated by reference. In the reference implementation, however, Fixnum and Symbol objects are actually "immediate values" rather than references. Neither of these classes have mutator methods, so Fixnum and Symbol objects are immutable, which means there is really no way to tell that they are manipulated by value rather than by reference. The existence of immediate values should be considered an implementation detail. The only practical difference between immediate values and reference values is that immediate values cannot have singleton methods defined on them. (Singleton methods are explained in 6.1.4) Tim