 (defn launch-some-workers
   [interpreter bindings numbered-programs]
   (doall
-    (cp/upmap 8
-      #(try
-        (println
+    (lazy/upmap 32
+      #(do
+        (.write *out*
           (str "\n\n"
             (first %) ": "
-            (interpreter-details
-              (run-program interpreter (second %) bindings))))
-      (catch Exception e
-        (do
-          (println (str "failure at " (first %)))
-          (spit-prisoner-file "foo" (second %) bindings (.getMessage e))
-          ; (throw (Exception. (.getMessage e)))
-          )))
-  numbered-programs))
-  (println :done)
-  )
+              (try
+                (interpreter-details
+                  (run-program interpreter (second %) bindings))
+              (catch Exception e
+                (do
+                  (.write *out* (str "failure at " (first %)))
+                  (spit-prisoner-file (second %) bindings (.getMessage e))
+                  (throw (Exception. (.getMessage e)))
+                  ))))))
+      numbered-programs)
+      ))
 
 
 (fact "run some workers in parallel"

                      (push/get-stack i :error)))
    :stack-points
      (reduce-kv
        (fn [counts stackname stack]
          (assoc counts stackname
            (str (count stack) "(" (fix/count-collection-points stack) " pts)")))
        {}
        (:stacks i))
    :binding-points
      (reduce-kv
        (fn [counts bindingname b]
          (assoc counts bindingname
            (str (count bindingname) " (" (fix/count-collection-points b) " pts)")))
        {}
        (:bindings i))
  })



;;;; setup

(def my-interpreter (push/interpreter))
(def cohort-size 100)
(def program-size 1000)
(def erc-scale 10)
(def erc-prob 3/5)
