    {:keys [uniform-combination-and-deletion-rate maintain-ancestors atom-generators] 
     :as argmap}]
   (let [combination-rate (number uniform-combination-and-deletion-rate)
-        deletion-rate (/ 1 (+ (/ 1 combination-rate) 1))
+        deletion-rate (if (zero? combination-rate)
+                        0
+                        (/ 1 (+ (/ 1 combination-rate) 1)))
         after-combination (vec 
                             (apply concat
                                    (map (fn [g1 g2]

  [ind {:keys [uniform-addition-and-deletion-rate maintain-ancestors atom-generators] 
        :as argmap}]
  (let [addition-rate (number uniform-addition-and-deletion-rate)
        deletion-rate (if (zero? addition-rate)
                        0
                        (/ 1 (+ (/ 1 addition-rate) 1)))
        after-addition (vec (apply concat
                                   (map #(if (< (lrand) addition-rate)
                                           (lshuffle [% 
