On Aug 14, 2006, at 12:53 PM, James Edward Gray II wrote: > I thought Kernel was for methods like puts() that we wanted to have > globally available but that weren't necessarily inherent to > Object. Clearly my understanding is flawed, so would someone > please explain how it is decided if a method belongs in Object or > Kernel? Everything (almost) belongs in Kernel <g> % irb irb(main):001:0> obj = Object.new => #<Object:0x35477c> irb(main):002:0> obj.methods.map { |x| obj.method(x).inspect }.grep(/ Kernel/).size => 40 irb(main):003:0> obj.methods.size => 40 I believe the purpose of BasicObject in 1.9 is to be able to say class O < BasicObject # I want BlankSlate without all the extra work of undef_method end I don't know anything about matz. cracking under the pressure <g>