@geeksam @noelrap this was a huge a ha moment for me the last time Noel wrote about it. I just had to let go of thinking of these as OO visibility and instead thinking of how they work with messages in the Smalltalk sense. And in that context, Ruby’s protected is really just a badly named something else, and only public and private actually make any sense. Which is why we have private constants but not protected constants.