I don't think there's a convention, and I've not yet found an ideal one.
Around 2000, with portable RnRS-ish Scheme absent a module system, I started using a convention that I think I took from Olin Shivers, which is to prefix non-public toplevel identifiers with `%`. (At one point, I even had a script to use this convention to take these portable files and generate dialect-specific ones, such as PLT Scheme ones with generated `provide` forms at the end.)
Then, considering that sometimes these identifiers show up in error messages and debugging tracebacks, I started prefixing with `%`, followed by the the library name, followed by `:`. That's good for debugging, but makes the non-public identifiers harder to read in the code in some ways, and unpleasant to type.
I have a related convention, in which a `provide` form immediately precedes any definition form that defines exported things. I should start using a `define/provide` regularly, to eliminate most of the clutter this causes. (I found that the separate big `provide` lists elsewhere just waste a lot of time, and introduce errors. There are other ways to get a summary sense of what's defined in the module.)
Better tool and debugging support could help (e.g., not having to embed package name in the identifier because sufficient location is always going to be available from error messages/tracebacks/debuggers, maybe syntax coloring in an editor to distinguish exported vs. non-exported among other properties).
-- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

