>>8
the `private/protected' keywords in SEPPLES and other similar languages are kind of meh, I prefer the way Lisp handles this: exported - You can just use as you wish.
unexported - You realize the author didn't mean this to be used and is an internal implementation detail. You have to type one more letter when using them, or you could forcefully import it and just use it normally.
I've had some cases where I had to use the internal state of some library, both in
ENTERPRISE languages and in Lisp. In ENTERPRISE shit, I just had to do some nasty hacks to get my way (in C++ you can do some simple pointer trickery to get to them, in C# you can use Reflection or just edit the binary directly), in Lisp, I just use it while understanding that if it's not exported, it's supposed to be an internal thing, and I should be weary that it might change in the future.