@Section
   @Title { The cross reference symbols "&&" and "&&&" }
   @Tag { crossref }
@Begin
@PP
The cross reference symbol @Code "&&" takes the name of a symbol (not an
object) for its left parameter, and an object whose value must be a
simple word, or several simple words, for its right parameter.  The
result is a cross reference, which may be thought of as an arrow pointing
from the cross reference symbol to the beginning of an invocation of the
named symbol.
@PP
The invocation pointed to, known as the @I target of the cross
reference, is generally one whose @@Tag parameter has value equal
to the right parameter of the cross reference symbol.  Three special tags,
{@Code preceding}, {@Code following}, and {@Code foll_or_prec}, point
respectively to the first invocation preceding the cross reference in
the final printed document, to the first invocation following it, and
to the first following it if such exists else to the first preceding it.
@PP
A cross reference may be used in four ways:  where an object is
expected, in which case its value is a copy of the target; with the
@@Open and @@Use symbols; with the @@Tagged symbol; and in the
@Code into clause or @Code "@Target" symbol of a galley definition, in
which case the value of the tag must be {@Code preceding},
{@Code following}, or {@Code foll_or_prec}.
@PP
Within an @Code "into" clause or @Code "@Target" symbol, the alternative
form @Code "&&&" is acceptable and indicates a forcing galley (Section
{@NumberOf targets}).
@PP
Except within an @Code into clause or @Code "@Target" symbol, the symbol
referred to must have a @@Tag parameter.  This is so even if the right
parameter of the cross reference is {@Code preceding}, {@Code following},
or {@Code foll_or_prec}.
@End @Section
