test-check

2026-03-20T20:23:06.991689Z

This seems like a standard optimization (sequence fusion) we could apply to rose/filter. Based on my reading, it might reduce the memory usage of shrinking common generators like such-that, vector and choose.

(defn filter
   "Returns a new Rose tree whose values pass `pred`. Values who
   do not pass `pred` have their children cut out as well."
   {:no-doc true}
   [pred rose]
   (make-rose (root rose)
-             (map #(filter pred %)
-                  (core/filter #(pred (root %)) (children rose)))))
+             (keep #(when (pred (root %))
+                      (filter pred %))
+                   (children rose))))
https://github.com/frenchy64/test.check/pull/5/changes

👀 1