core-logic

Ben Sless 2021-11-26T08:12:15.033100Z

It works

clojure.lang.IReduceInit
  (reduce [_ rf init]
    (let [init (rf init a)]
      (if (reduced? init)
        @init
        (reduce rf init (pull f)))))
where
(defn pull
  [f]
  (if (instance? clojure.lang.Fn f)
    (recur (f))
    f))