The examples that follow all presuppose that numbers are signed integers. Choice of type of number (and the representation thereof) can be left to implementations, but signed integers (at least) should be supported.

There's an issue about integer/string type conversion. We will assume that this is implicit, determined automatically by type expectations of the node. This may well not be workable, in general.

All these functions apply to number path prefixes. Once an element is
encountered that does not represent a number (or part of an arithmetic
expression, in the case of `APU`), then the arithmetic ceases and the
rest of the path is mapped over unchanged.