 
 ; Atom generators
 (def snow-day-atom-generators
-  (concat (list
-            ;;; end constants
-            ;;; end ERCs
-            (tag-instruction-erc [:integer :float :boolean :exec] 1000)
-            (tagged-instruction-erc 1000)
-            ;;; end tag ERCs
-            'in1
-            'in2
-            'in3
-            'in4
-            ;;; end input instructions
-            )
-          (registered-for-stacks [:integer :float :boolean :exec])))
+  (make-proportional-atom-generators
+   (concat
+    (registered-for-stacks [:integer :float :boolean :exec])
+    (list (tag-instruction-erc [:integer :float :boolean :exec] 1000) ; tags
+          (tagged-instruction-erc 1000)))
+   (list 'in1
+         'in2
+         'in3
+         'in4) ; inputs
+   (list 0
+         0.0
+         1
+         1.0
+         -1
+         -1.0) ; constants
+   {:proportion-inputs 0.15
+    :proportion-constants 0.05}))
 
 
 ;; A list of data domains for the problem. Each domain is a vector containing

  "Returns the train and test cases."
  [data-domains]
  (map snow-day-test-cases
          (test-and-train-data-from-domains data-domains)))

; Define train and test cases
(def snow-day-train-and-test-cases

; Define the argmap
(def argmap
  {:error-function (make-snow-day-error-function-from-cases (first snow-day-train-and-test-cases)
                                                            (second snow-day-train-and-test-cases))
   :atom-generators snow-day-atom-generators
   :max-points 2000
   :max-genome-size-in-initial-program 250
