-> yes, or https://practical-scheme.net/gauche/man/?p=

The individual symbol URLs are tricky. They often cannot be derived from the symbol name with a simple rule. It would be best to just have a lookup table manually mapping symbols to URLs. This lookup table could be auto-generated for implementations where we can get away with a simple rule.

-> yes, such as the Guile links. I know this only works in rare cases. But:

  1. if it works, it's a dead simple feature at least for some Scheme's, so why not use it where available; we'll have many such cases, where a feature only works for a few Schemes and if we only support the intersection of the features supported everywhere, our feature list will be quite small ;)
  2. for the cases where it does not work, we can use the fallback-search; admittedly also the fallback for that is not very good, but with some more effort we can hopefully come up with something better over time...

Is it that simple though? E.g. the Gauche URLs are like this: https://practical-scheme.net/gauche/man/gauche-refe/R7RS-large.html#index-alist_002d_003ebag So "alist->bag" is encoded as "alist_002d_003ebag" (the 002d and 003e are the Unicode codepoints for the ASCII arrow). Some other implementation might use "alist-%3ebag", another might use "alist-_bag", etc. It easily gets to the point where you need to add N slightly different syntaxes for N implementations. That's quite specialized information to have in clients which is why I would just providemanual lookup tables to them.

That being said, we should totally add these URL tables to https://github.com/schemedoc/implementation-metadata in some format :) That way the clients and API could just read those metadata files and use them in whatever way they want. We could have the table generation/extraction rules here along with other extraction stuff for a particular Scheme implementation. If implementation-specific idiosyncrasies are all in this central place, maybe they will more easily stay up to date.

Or do you have some scenario in mind where the tables would take too much memory and it would be better to have just the rules on the client side?