Those tricky < and > characters
In the REBOL lexicon, the < and > "arrow" characters are special, and must be scanned (lexically analyzed) in special ways.
To understand the situation, notice that arrows denote two datatypes, word! and tag!:
>> type? second [a < b]
>> type? second [a > b]
>> type? second [a <> b]
>> type? second [a <c> b]
To avoid problems, we don't allow arrows to be part of most words. This avoids creating ambiguous lexical sequences such as:
a <c b d e>
Are those arrows as words or are they part of a tag?
To simplify such cases, we restrict the usage of arrows when used for words. We allow these words:
< <= << <> >> >= >
If you attempt to use arrows within words in general, you'll see an error:
** Syntax error: invalid "word" -- "a<"
** Near: (line 1) a<
However, we do want to allow this common markup usage in a sensible way:
== [<b> word </b>]
So, that's even more tricky to scan.
Now, all this being said, we know there are a few minor bugs related to arrows in the scanner. They are listed in the R3 CureCode bug database, and they will be fixed.
For example, we need to allow lit-word quoting of arrow words:
>> if word = '< [...]
** Syntax error: invalid "word-lit" -- "'"
** Near: (line 1) if word = '< [...]
But, I simply wanted to point out this issue, so it is understood that arrows are not general-usage word characters.