anchor.diff:  ;;=> 1000
   ----
   
  -The `conform` function takes something that can be a spec and a data value. Here we are passing a predicate which is implicitly converted into a spec. The return value is "conformed". Here, the conformed value is the same as the original value - we'll see later where that starts to deviate. If the value does not conform to the spec, the special value `:clojure.spec/invalid` is returned.
  -
  -If you don't want to use the conformed value or check for `:clojure.spec/invalid`, the helper https://clojure.github.io/clojure/branch-master/clojure.spec-api.html#clojure.spec/valid?[`valid?`] can be used instead to return a boolean.
  +The `conform` function takes something that can be a spec and a data value. Here we are passing a predicate which is implicitly converted into a spec. The return value is "conformed". Here, the conformed value is the same as the original value - we'll see later where that starts to deviate. If the value does not conform to the spec, the special value `:clojure.spec.alpha/invalid` is returned.
  +
  +If you don't want to use the conformed value or check for `:clojure.spec.alpha/invalid`, the helper https://clojure.github.io/clojure/branch-master/clojure.spec-api.html#clojure.spec/valid?[`valid?`] can be used instead to return a boolean.
   
   [source,clojure]
   ----
  
positive.code: ;;=> (-1.0 -1.0 -1.5 1.25 -0.5 -1.0 -3.125 -1.5625 1.25 -0.390625)
  ----
  
  To learn more about generators, read the test.check https://clojure.github.io/test.check/intro.html[tutorial] or https://clojure.github.io/test.check/generator-examples.html[examples]. Do keep in mind that while clojure.spec.gen is a large subset of clojure.test.check.generators, not everything is included.
  
  == Instrumentation and Testing
  
  spec provides a set of development and testing functionality in the `clojure.spec.test` namespace, which we can include with:
  
  [source,clojure]
  ----
  (require '[clojure.spec.test :as stest])
  ----
  
  === Instrumentation
  
negative.code: (person-name 100)
  ;; CompilerException clojure.lang.ExceptionInfo: Spec assertion failed
  ;; val: 100 fails predicate: map?
  ;; :clojure.spec.alpha/failure  :assertion-failed
  ;; #:clojure.spec.alpha{:problems [{:path [], :pred map?, :val 100, :via [], :in []}], 
  ;;                      :failure :assertion-failed}
  ----
  
  A deeper level of integration is to call conform and use the return value to destructure the input. This will be particularly useful for complex inputs with alternate options.
  