   (ct/report-trial property num-trials num-trials)
   {:result true :num-tests num-trials :seed seed})
 
+(defn not-falsey-or-exception?
+  "True if the value is not falsy or an exception"
+  [value]
+  (and value (not (instance? Throwable value))))
+
 (defn quick-check
   "Tests `property` `num-tests` times.
 

   :depth depth
   :result (:result smallest)
   :smallest (:args smallest)})

(defn not-falsey-or-exception?
  "True if the value is not falsy or an exception"
  [value]
  (and value (not (instance? Throwable value))))

(defn- shrink-loop
  "Shrinking a value produces a sequence of smaller values of the same type.

              result-map (gen/rose-root result-map-rose)
              result (:result result-map)
              args (:args result-map)]
          (if (not-falsey-or-exception? result)
            (do
              (ct/report-trial property so-far num-tests)
              (recur (inc so-far) rest-size-seq))
            (failure property result-map-rose so-far size created-seed)))))))

(defn- smallest-shrink
  [total-nodes-visited depth smallest]
