+1 on some kind of invisibility/private-ness override feature. Another bonus of 
that is to use it as a temporary workaround if some 3rd party package has made 
something "overly" private as viewed by an "expert" user. While this has come 
up in the context of library writing, sometimes users of libraries understand 
many of its internals and sometimes they don't. Private, not exported, is 
probably the right default or at least too late to change, but it's easy to 
forget a `*` export marker and easy to disagree. This proposed mechanism would 
allow temporary workarounds much closer to a likely more sanitary future usage.

It might be better to call it something scarier/less similar to a token like 
`private` which can be _so_ common in other prog.lang's as to lead to questions 
like "why does `private` mean this negative sense in Nim but positive sense in 
Foo?". `import foo {.overrideInvisibility.}` or `overridePrivate` or something. 
Just some kind of word to indicate bypassing of normal-ness (to act as a 
redundant cue over there being a pragma there at all). I agree that 
`{.breakTheGlassAndMakeEverythingVisible.}` is severe overkill. :-)

Reply via email to