 ;; --- Utils
 
 (defn promisify
-  "Given a function that accepts a callback as the last argument return other
-  function that returns a promise. Callback is expected to take single
+  "Given a function that accepts a callback as the last argument, return a
+  function that returns a promise. Callback is expected to take one
   parameter (result of a computation)."
   [callable]
   (fn [& args]


(defmacro future
  "Analogous to `clojure.core/future` that returns a promise instance
  instead of the `Future`. Useful for execute synchronous code in a
  separate thread (also works in cljs)."
  [& body]
  `(c/-> (exec/submit! (fn []


(defmacro do!
  "Execute potentially side effectful code and return a promise resolved
  to the last expression after awaiting the result of each
  expression."
  [& exprs]
  `(pt/-bind
