anchor.diff:  Another option is using a factory function. If you are familiar with JavaScript,
   this is a similar approach.
   
  -.Example creating a promise instance using a factory.
  +Example creating a promise instance using a factory.
   [source, clojure]
   ----
   @(p/create (fn [resolve reject] (resolve 1)))
  
positive.code:   (expr3))
  ----
  
  Finally, **promesa** exposes a `future` macro very similar to the
  `clojure.core/future`:
  
  [source, clojure]
  
negative.code: this might cause unexpected latency. It may block other threads in the thread
  pool from doing other, maybe more important, tasks.
  
  For such cases, _promesa_ exposes an additional arity for provide a
  user-defined executor to control where the chained callbacks are executed:
  
  [source, clojure]
  