anchor.diff:  
   You can add this dependency to your classpath by adding the `:bench` alias to modify the dependency resolution: `clj -A:bench`.
   
  +[[prep_libs]]
  +=== Preparing source dependency libs
  +
  +Some dependencies will require a preparation step before they can be used on the classpath. These libs should state this need in their deps.edn:
  +
  +[source,clojure]
  +----
  +{:paths ["src" "target/classes"]
  + :deps/prep-lib {:alias :build
  +                 :fn compile
  +				 :ensure "target/classes"}}
  +----
  +
  +Including the top-level key `:deps/prep-lib` tells the tools.deps classpath construction that something extra is needed to prepare this lib and that can be performed by invoking the `compile` function in the `:build` alias. Once the prepare step has been done, it should create the path `"target/classes"` and that can be checked for completion.
  +
  +You depend on this library like any other source-based library (could be git or local):
  +
  +[source,clojure]
  +----
  +{:deps {my/lib {:local/root "../needs-prep"}}}
  +----
  +
  +If you then try to include that library on your classpath you'll see an error:
  +
  +[source,shell]
  +----
  +$ clj
  +Error building classpath. The following libs must be prepared before use: [my/lib]
  +----
  +
  +You can then tell the CLI to prep using this command (this is a 1-time action for a particular lib version):
  +
  +[source,shell]
  +----
  +$ clj -X:deps prep
  +Prepping io.github.puredanger/cool-lib in /Users/me/demo/needs-prep
  +$ clj
  +Clojure 1.10.3
  +user=>
  +----
  +
   [[override_deps]]
   === Override a dependency
   
  
positive.code: $ clj -A:test -Spath
  test:
  src:
  /Users/me/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar:
  ... same as before (split here for readability)
  ----
  
  
negative.code: $ clj
  Downloading: clojure/java-time/clojure.java-time/0.3.2/clojure.java-time-0.3.2.pom from clojars
  Downloading: clojure/java-time/clojure.java-time/0.3.2/clojure.java-time-0.3.2.jar from clojars
  Clojure 1.10.3
  user=> (require '[java-time :as t])
  nil
  user=> (str (t/instant))
  "2020-09-01T03:42:47.691119Z"
  ----
  
  You will see messages about a library being downloaded the first time you use a dependency. Once the file is downloaded (usually to `~/.m2` or `/.gitlibs`), it will be reused in the future. You can use the same process to add other libraries to your `deps.edn` file and explore Clojure or Java libraries.
  
  == Writing a program
  
  