anchor.diff:  ----
   Note that named fns such as `mult` are normally defined with `defn`, which expands into something such as the above.
   
  -A fn (overload) defines a recursion point at the top of the function, with arity equal to the number of `params` _including the rest param, if present_. See <<special_forms#recur#,`recur`>>.
  +A fn (overload) defines a recursion point at the top of the function, with arity equal to the number of __param__s _including the rest param, if present_. See <<special_forms#recur#,`recur`>>.
   
   fns implement the Java `Callable`, `Runnable` and `Comparator` interfaces.
   
  
positive.code: -> 42
  ----
  
  There are similar `_**:strs**_` and `_**:syms**_` directives for matching string and symbol keys, the latter also allowing prefixed symbol keys since Clojure 1.6.
  
  Clojure 1.9 adds support for directly destructuring many keys (or symbols) that share the same namespace using the following destructuring key forms:
  
  
negative.code: [[binding-forms]]
  == Binding Forms (Destructuring)
  
  Clojure supports abstract structural binding, often called destructuring, in let binding lists, fn parameter lists, and any macro that expands into a `let` or `fn`. A _binding-form_ can be a data structure literal containing symbols that get bound to the respective parts of the __init-expr__. The binding is abstract in that a vector literal can bind to anything that is sequential, while a map literal can bind to anything that is associative.
  
  === Vector binding destructuring
  
  Vector __binding-expr__s allow you to bind names to parts of _sequential_ things (not just vectors), like vectors, lists, seqs, strings, arrays, and anything that supports https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/nth[`nth`]. The basic sequential form is a vector of __binding-form__s, which will be bound to successive elements from the __init-expr__, looked up via `nth`. In addition, and optionally, `&` followed by a __binding-form__ will cause that __binding-form__ to be bound to the remainder of the sequence, i.e. that part not yet bound, looked up via https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/nthnext[`nthnext`].
  
  Finally, also optional, `:as` followed by a symbol will cause that symbol to be bound to the entire __init-expr__:
  
  [source,clojure]
  ----
  