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

  ;; 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)))
             (not (empty? (:genome state))))
      (let [rate (+ 0.001 (* 0.001 (mod (first (:integer state)) 100)))
            genome (first (:genome state))]
        (->> (pop-item :integer state)
             (pop-item :genome)
             (push-item (vec (:genome (uniform-instruction-mutation
                                        {:genome genome}


(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}
