John Harrop wrote:
> I think we need some notion of semi-private as well. It would be ignored
> by :use and by automation like tab-completion of symbols, doc
> generation, and the like (except it would show in tab-completion inside
> of its namespace) but would not actually be illegal to invoke from
> elsewhere. So, it would be like private in every respect except for
> invokability.
I'd tentatively agree. Although perhaps another model would be to just
put your semi-private declarations in a different namespace which is not
normally :use'd.
If you're really desperate you can get around the exception like this:
user> (apples/foo 4)
var: #'apples/foo is not public
[Thrown class java.lang.IllegalStateException]
user> (defmacro reveal [sym]
`(deref ~(clojure.lang.Compiler/resolveIn *ns* sym true)))
user> ((reveal apples/foo) 4)
But that's no doubt a bad idea.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---