                (d/error "Warning: The same with-let is being used more "
                         "than once in the same reactive context."))
              (set! (.-generation ~v) (.-ratomGeneration c#))))
-       (let ~bs
-         (let [res# (do ~@forms)]
-           ~add-destroy
-           res#)))))
+       (let ~(into bs [res `(do ~@forms)])
+         ~@add-destroy
+         ~res))))

  (let [v (gensym "with-let")
        k (keyword v)
        init (gensym "init")
        bs (into [init `(zero? (alength ~v))]
                 (map-indexed (fn [i x]
                                (if (even? i)

                            [(butlast body) `(fn [] ~@(rest fin))]
                            [body nil]))
        add-destroy (when destroy
                      (list
                        `(let [destroy# ~destroy]
                           (if (reagent.ratom/reactive?)
                             (when (nil? (.-destroy ~v))
                               (set! (.-destroy ~v) destroy#))
                             (destroy#)))))
        asserting (if *assert* true false)
        res (gensym "res")]
    `(let [~v (reagent.ratom/with-let-values ~k)]
       ~(when asserting
          `(when-some [^clj c# reagent.ratom/*ratom-context*]
