+
+ A format control string consists of formatting directives, introduced by
+ the `~' character, and literal text. Literal text is simply output as-is.
+ Formatting directives may read /arguments/ which are provided as additional
+ inputs to the `format' function, and are typically items to be written to
+ the output in some form, and /parameters/, which control the formatting of
+ the arguments, and may be supplied in the control string, or themselves
+ read from arguments. A directive may also carry up to two flags, `@' and
+ `:'.
+
+ The effects of the directive are determined by the corresponding formatting
+ operation, an object found by looking up the directive's identifying
+ character in `COMPILE.opmaps', which is a list of dictionaries. The
+ character is converted to upper-case (if it is alphabetic), and then the
+ dictionaries are examined in order: the first match found wins. See the
+ description of the `Formatting protocol' for details of how formatting
+ operations work.
+
+ A formatting directive has the following syntax.
+
+ DIRECTIVE ::= `~' [PARAMS] [`=' ARG] FLAGS CHAR
+
+ PARAMS ::= PARAM [`,' PARAMS]
+
+ PARAM ::= EMPTY | INT | `#' | `'' CHAR | `v' | `!' ARG
+
+ FLAGS ::= [[ `@' | `:' ]]*
+
+ (The useful but unusual notation [[ X | Y | ... ]]* denotes a sequence of
+ items drawn from the listed alternatives, each appearing at most once. See
+ the function `parse_arg' for the syntax of ARG.)
+
+ An empty PARAM is equivalent to omitting the parameter; `#' is the number
+ of remaining positional arguments; `!ARG' reads the parameter value from
+ the argument; `v' is equivalent to `!+', as a convenient abbreviation and
+ for Common Lisp compatibility. The `=ARG' notation indicates which
+ argument(s) should be processed by the operation: the default is `=+'