anchor.diff:    [wait]
     (p/promise (fn [resolve reject]
                  (p/schedule wait #(resolve wait)))))
  -----
  -
  -Let's see an example using `alet` (async let) macro:
  -
  -[source, clojure]
  -----
  -(def pr
  +
  +(def result
     (p/alet [x (p/await (sleep-promise 42))
              y (p/await (sleep-promise 41))
              z 2]
       (+ x y z)))
   
  -(p/then pr (fn [v]
  -             (println v)))
  -
  -;; => Stdout: 85
  +@result     ; only on the jvm
  +;; => 85
   ----
   
   The `alet` macro behaves identical to the `let` with the exception that it
  
positive.code:               (.log js/console "The first one finished: " x))))
  ----
  
  Later, for more advanced use cases, _promesa_ is an algebraic structure that
  implements the associative binary operation usually called `mappend`:
  
  [source, clojure]
  ----
  (require '[cats.core :as m])
  
  (def pr (m/mappend (p/promise {:a 1})
                     (p/promise {:b 2})))
  (p/then pr (fn [v]
               (println v)))
  
  ;; => Stdout: {:a 1 :b 2}
  ----
  
  
  === Delays and timeouts.
  
  
negative.code: 
  [source,clojure]
  ----
  [funcool/promesa "1.0.0"]
  ----
  
  This package requires JDK8 if you are using it on the JVM platform and
  