We already have source and do/import which looks up values on github repo.
I'm suggesting that we can also provide functionality such as
help <compile>
And instead of just saying it's a tag, it returns a list of urls to documents on here or trello that give instructions on how to compile the interpreter.
Or, help <void> would take us to the threads on handling voids.
HELP can soft quote its argument, allowing one a distinction between HELP (<foo>) and HELP <foo>, and HELP X where X is <foo>
I see no particular problem with HELP on literals giving more useful answers than if in a GROUP! or fetched from a variable. If you say HELP ('APPEND) and it says APPEND is a WORD! with binding into the system and has 6 letters, nothing terrible about that.
But I'd also say that if we have things like do <foo>, then help <foo> telling you what the foo module does and where it's being loaded from might be a better fit.
ISSUE! is more commonly associated with tagging, so perhaps what you're talking about could be help #compile
I also think that help [...] vs help ([...]) would be a good distinction, because taking a block as a dialect is more useful than telling you a literal block contains N elements or somesuch.
I don't know exactly what a help dialect would look like, but maybe people have ideas. (parse rule applied to the names of all known entities? help ["a" to end] for all functions starting with a?
So I'm going to go ahead and say that things like help 10 coming back and telling you "10 is an integer" is so useless that it needs to be an error until we come up with a better meaning for it.
You can always say help (5 + 5) or similar to put an expression in a group that gets evaluated.
I've split up HELP into "dialected help" and "non-dialected help" (HELP-VALUE), which makes things clearer. There's a switch statement in HELP for all the dialected types that makes this clearer, and HELP HELP will walk you through what the dialected types do.
It points you to using GROUP!s if you don't want dialected help:
>> help help
USAGE:
"HELP" @topic /web
DESCRIPTION:
HELP is a dialected function. If you want non-dialected help on any
particular value, then pass that value in a GROUP! to get some very
literal information back:
help ('insert) ; will tell you that INSERT is a WORD!
help (10 + 20) ; will tell you 30 is an INTEGER!
help-value 10 + 20 ; alternative way to get this information
Other usages have meaning dependent on the datatype.
[WORD! TUPLE! PATH!] - Give help on what the value looks up to:
help insert ; describe argument types and return value of INSERT
[TEXT!] - Search help strings in system for the given text as substring:
help "insert" ; will find INSERT, INSERT-ITEMS, DO-INSERT, etc.
[ISSUE!] - Browse online topics with the given tag:
help #compiling
[TYPE-WORD!] - List all data instances of the type:
help integer! ; shows all the integer variables in the system
[BLOCK!, etc.] - TBD. Can you think of a good meaning for other types?