Private access that limits exposure to extensions and subclasses is the bane of reusability. It sucks in Java and it sucks in Swift. As far as I know Ruby is the only language that seems to get that.