 (defn >=>
   "Left-to-right composition of monads."
   [mf mg x]
-  (with-monad (get-current-context mf)
+  (with-context (get-current-context mf)
     (mlet [a (mf x)
            b (mg a)]
           (return b))))


  Example:

      (with-monad either/either-monad
        (pure 1)
      ;; => #<Right [1]>
  "

  [mvs]
  {:pre [(not-empty mvs)]}
  (let [ctx (get-current-context (first mvs))]
    (with-context ctx
      (reduce (fn [mvs mv]
                (mlet [v mv
                       vs mvs]
