                            (let [v (vec (.toArray a))]
                              ;;clear first!
                              (.clear a)
-                             (rf result v)))]
+                             (unreduced (rf result v))))]
               (rf result)))
          ([result input]
             (.add a input)

  "Returns true if x is the result of a call to reduced"
  [r]
  (instance? Reduced r))

;; generic to all refs
;; (but currently hard-coded to atom!)

                             (let [v (vec (.toArray a))]
                               ;;clear first!
                               (.clear a)
                               (unreduced (rf result v))))]
                (rf result)))
           ([result input]
              (let [pval @pa
