         :as argmap}]
   (if (not (some #{:close} epigenetic-markers))
     ind
-    (let [uniform-close-mutation-rate (number uniform-close-mutation-rate)
-          close-increment-rate (number close-increment-rate)
+    (let [uniform-close-mutation-rate (random-element-or-thing uniform-close-mutation-rate)
+          close-increment-rate (random-element-or-thing close-increment-rate)
           close-mutator (fn [instr-map]
                           (let [closes (get instr-map :close 0)]
                             (assoc instr-map :close

  "Returns the individual with each element of its genome possibly preceded or followed by
  a new gene, with probability given by uniform-addition-rate."
  [ind {:keys [uniform-addition-rate maintain-ancestors atom-generators] :as argmap}]
  (let [rate (number uniform-addition-rate)
        new-genome (vec (apply concat
                               (mapv #(if (< (lrand) rate)
                                        (lshuffle [% 

   mutated it will be replaced with a random instruction."
  [ind {:keys [uniform-mutation-rate maintain-ancestors atom-generators]
        :as argmap}]
  (let [uniform-mutation-rate (random-element-or-thing uniform-mutation-rate)
        instruction-mutator (fn [token]
                              (assoc token
                                :instruction
