anchor.diff:  ** The only options for `:refer-clojure` are `:exclude` and `:rename`
   ** `:import` is available only for importing Google Closure classes
   *** ClojureScript types and records should be brought in with `:use` or `:require :refer`, not `:import` ed
  -* Macros must be defined in a different _compilation stage_ than the one from 
  +* Macros must be defined in a different _compilation stage_ than the one from
   where they are consumed. One way to achieve this is to define them in one namespace and use them from another. They are referenced via the `:require-macros` / `:use-macros` options to `ns`
   ** `:require-macros` and `:use-macros` support the same forms that `:require` and `:use` do
   
  
positive.code: * You must currently use the `ns` form only with the following caveats
  ** You must use the `:only` form of `:use`
  ** `:require` supports `:as`, `:refer`, and `:rename`
  *** all options can be skipped
  *** in this case a symbol can be used as a libspec directly
  **** that is, `(:require lib.foo)` and `(:require [lib.foo])` are both supported and mean the same thing
  
negative.code: (ns my.namespace
    (:require-macros [my.macros :as my]))
  ----
  
  Sugared and other `ns` variants can be employed in lieu of using the `:require-macros` primitive; see Namespaces below for details.
  
  Macros are written in `\*.clj` or `*.cljc` files and are compiled either as Clojure when
  using regular ClojureScript or as ClojureScript when using bootstrapped / self-host
  ClojureScript. One point of note is that the code generated by Clojure-based
  ClojureScript macros must target the capabilities in ClojureScript.
  
  [NOTE]
  ====
  ClojureScript namespaces _can_ require macros from the selfsame namespace, so long as they
  are kept in different compilation stages. So, for example a `foo.cljs` or `foo.cljc` file can make
  use of a `foo.cljc` or `foo.clj` file for its macros.
  ====
  
  