In Ruby, my understanding is that self is the implied receiver for any bare method call. However:
~: irb
>> puts "foo"
foo
=> nil
>> self.puts "foo"
NoMethodError: private method `puts' called for main:Object
What explains this?
In case it's any help:
>> method(:puts).owner
=> Kernel