 
 (defn delay
   "Given a timeout in miliseconds and optional value, returns a promise
-  that will fulfilled with provided value (or nil) after the time is
+  that will be fulfilled with provided value (or nil) after the time is
   reached."
   ([t] (delay t nil exec/default-scheduler))
   ([t v] (delay t v exec/default-scheduler))


(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 []

  "Returns a cancellable promise that will be fulfilled with this
  promise's fulfillment value or rejection reason.  However, if this
  promise is not fulfilled or rejected within `ms` milliseconds, the
  returned promise is cancelled with a TimeoutError."
  ([p t] (timeout p t ::default exec/default-scheduler))
  ([p t v] (timeout p t v exec/default-scheduler))
  ([p t v scheduler]
