11.3.3 Result-node-list
A result-node-list represents a list of nodes in the result grove.  A subset of the operations permitted on node-lists are permitted on result-node-lists.  In a prototype, an argument name rnl shall be of type result-node-list.

NOTE 32

The allowed operations are designed to ensure that if a node in the result grove is contained in the result-node-list that results from evaluating an expression at some point in the construction of the result grove, then that node shall be contained in the result-node-list that results from evaluating that expression at any subsequent point in the construction of the result grove.
(node-list-union rnl )
(node-list-intersection rnl )
(children rnl)
(attributes rnl)
(preced rnl)
(follow rnl)
(parent rnl)
(ancestors rnl)
(descendants rnl)
(origin rnl)
(select-by-class rnl sym)
(select-by-property rnl sym proc)
(select-by-null-property rnl sym)
(select-by-missing-property rnl sym)
These procedures behave in the same way as the corresponding operations on node-lists except that the return value is of type result-node-list rather than node-list.
(select-by-relation rnl i proc)
Returns a result-node-list containing those nodes contained in rnl which are such that proc applied to a result-node-list containing exactly that node returns a result-node-list containing i or more nodes.  For example,
(lambda (x)
  (select-by-relation (children x)
                      1
                      (lambda (y)
                        (select-elements (descendants y) "para"))))
selects those children of a node that have a descendant element with a gi of para.
(select-by-attribute-token rnl string1 string2)
Returns a result-node-list containing those nodes in rnl that have an attribute named string1 and that have an attribute with a child of class attribute-value-token with a token property equal to string2 after any applicable string normalization.