Guillaume is making an excellent point here. (Reposted below with his permission.)
We don't need to make a bigger philosophical deal about it than that. This is low-level.
Also I think all reasonable uses will be about data and not code, and therefore they will not need any line numbering or similar info, so the unwrapping is fine - or easy access to an unwrapping routine (you choose). So finally perhaps the only thing would be to give it a better name, if you want that.
Please let me know if-when it can be included in Gambit :D
Thanks!!
2016-02-24 21:04 GMT+07:00 Guillaume Cartier
<gucartier@gmail.com>:
Hi Adam,
I think the main thing I'd say is that from my experience, waiting for Marc to integrate something into Gambit so as "not to use undocumented features", you will wait a long time :) I'd say don't worry too much about using undocumented stuff. I think it is actually a wonderful feature that Gambit exposes its internal stuff, where in many languages you just don't have any access to internals. JazzScheme uses what I'd say is a "healthy" mix of mostly documented features and various undocumented features.
One reason I say you'll be waiting a long time is that a big design goal in Gambit is to *not* go into unclear how best to implement high-level features. In this Marc is really in-tune with the old R5RS philosophy, which is kinda obvious since he was on the committee :) Regarding that, I think Marc should include the low-level part of your code to implement #\ extensions even if he feels the higher level stuff is unclear.
Cheers,
Guillaume