   ;; nondetermistic autoconstruction
   ^{:stack-types [:genome :boolean]} (fn [state] (push-item false :boolean state)))
 
-;(define-registered
-;  genome_uniform_instruction_mutation
-;  ^{:stack-types [:genome :float]}
-;  (fn [state]
-;    (if (and (not (empty? (:float state)))
-;             (not (empty? (:genome state))))
-;      (let [rate (mod (Math/abs (first (:float state))) 1.0)
-;            genome (first (:genome state))]
-;        (->> (pop-item :float state)
-;             (pop-item :genome)
-;             (push-item (vec (:genome (uniform-instruction-mutation
-;                                        {:genome genome}
-;                                        (merge @push-argmap {:uniform-mutation-rate rate}))))
-;                        :genome)))
-;      state)))
-
 (define-registered
   genome_uniform_instruction_mutation
-  ^{:stack-types [:genome :integer]}
-  (fn [state]
-    (if (and (not (empty? (:integer state)))
+  ^{:stack-types [:genome :float]}
+  (fn [state]
+    (if (and (not (empty? (:float state)))
              (not (empty? (:genome state))))
-      (let [rate (+ 0.001 (* 0.001 (mod (first (:integer state)) 100)))
+      (let [rate (mod (first (:float state)) 1.0)
             genome (first (:genome state))]
-        (->> (pop-item :integer state)
+        (->> (pop-item :float state)
              (pop-item :genome)
              (push-item (vec (:genome (uniform-instruction-mutation
                                         {:genome genome}

                                               {:uniform-mutation-constant-tweak-rate rate
                                                :uniform-mutation-int-gaussian-standard-deviation stdev}))))
                        :genome)))
      state)))

(define-registered
  genome_uniform_integer_mutation
  ^{:stack-types [:genome :integer :float]}
  (fn [state]
    (if (and (not (empty? (rest (:float state))))
             (not (empty? (:genome state))))
      (let [rate (mod (first (:float state)) 1.0)
            stdev (+ 1 (#(if (pos? %) % (- %)) (second (:float state))))
            genome (first (:genome state))]
        (->> (pop-item :float state)
             (pop-item :float)
             (pop-item :genome)
             (push-item (vec (:genome (uniform-integer-mutation
                                        {:genome genome}
