If `self` is always the implied receiver in Ruby, why doesn't `self.puts` work?
===

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