> <\body> The routine and the corresponding macro can be used as a higher level interface to the fundamental routines for modifying trees as described in the . However, it is still up to the user to verify that the resulting edit tree is still correct. <\explain> )> )> <|explain> This routine replaces the tree )> by a new content value . Besides the fact that the routine supports additional accessors for (see the description of below), differs from in this respect that tries to cleverly decompose the assignment into fundamental modification routines. The objective of this decomposition is to make a less intrusive modifications in the document, so as to preserve as many tree positions and cursor positions as possible. For instance, the operation is a no-operation for all trees . A more complex operations like <\scm-code> ( t `(foo "Hop" ,( t 2))) is decomposed into the following fundamental modifications: <\scm-code> ( t 2) ( t 1 '(foo "Hop")) Like in the case and , you should use the macro in order to update the value of if is a variable is the empty list. <\explain> )> <|explain> In its simplest form, this routine allows for the quick access of a subtree of via a list of integers . For instance, if contains the tree , then 1 0)> returns the tree . In its general form, relies on the routine in order to compute the desired subtree. With as in the above example, this makes it possible to retrieve the subtree > using . In the case when there are several matches, the first match is returned. For instance, if contains the tree >, then returns >. In fact, the result of is not necessarily a subtree of : the utility also accepts the accessors , , , , for navigating inside the edit tree starting with . For instance, returns the parent of the cursor tree. For more details, we refer to the documentation of . Besides the above routine for the direct modification of a subtree of the document, also provides several routines for inserting content at the current cursor position. <\explain> )> <|explain> Insert the content at the current cursor position. does some additional checking whether it is allowed to perform the insertion. For instance, it is disallowed to insert multi-paragraph content inside a mathematical formula. Whenever the user attempts to make an invalid insertion, then is equivalent to a no-operation. <\explain> )> <|explain> This routine may be used to insert a valid tag with label . As many empty arguments as necessary are inserted in order to make the tag valid. Similarly, if is a multi-paragraph tag, then the necessary operations are performed to put the tag in a separate paragraph. , , etc.