                                         @push-argmap)))
                         :genome)))
       state)))
-

             (pop-item :genome)
             (push-item (vec (:genome (uniform-string-mutation
                                        {:genome genome}
                                        (merge @push-argmap {:uniform-mutation-rate rate1
                                                             :uniform-mutation-string-char-change-rate rate2}))))
                        :genome)))
      state)))


  autoconstructive_integer_rand 
  ;; pushes a constant integer, but is replaced with integer_rand during 
  ;; nondetermistic autoconstruction
  ^{:stack-types [:genome :integer]} 
  (fn [state] (push-item 0 :integer state)))

(define-registered
  autoconstructive_boolean_rand 
  ;; pushes false, but is replaced with boolean_rand during 
  ;; nondetermistic autoconstruction
  ^{:stack-types [:genome :boolean]} 
  (fn [state] (push-item false :boolean state)))

(define-registered
  genome_uniform_instruction_mutation
