Si `self` es siempre el receptor implícito en Ruby, ¿por qué no funciona` self.puts`?

En Ruby, mi entendimiento es queself es el receptor implícito para cualquier llamada de método simple. Sin embargo:

~: irb
>> puts "foo"
foo
=> nil
>> self.puts "foo"
NoMethodError: private method `puts' called for main:Object

¿Qué explica esto?

En caso de que sea de alguna ayuda:

>> method(:puts).owner
=> Kernel

Respuestas a la pregunta(4)

Su respuesta a la pregunta