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

          ["WYYW" "BBOG"]
          ["GGGB" "BGGG"]
          ["BBBB" "OOOO"]
          ) 5 0]
   [(fn [] (mastermind-input)) 195 2000]
  ])

;;Can make mastermind test data like this:


; Atom generators
(def mastermind-atom-generators
  (make-proportional-atom-generators
   (concat
    (registered-for-stacks [:integer :exec :boolean :string :char])
    (list (tag-instruction-erc [:integer :exec :boolean :string :char] 1000) ; tags
          (tagged-instruction-erc 1000)))
   (list 'in1 'in2) ; inputs
   (list 0
         1
         \B
         \R
         \W
         \Y
         \O
         \G) ; constants
   {:proportion-inputs 0.15
    :proportion-constants 0.05}))

;; Define test cases
(defn mastermind-one-string
  "Makes a 4-char mastermind string"
  []
  (apply str (repeatedly 4
                         #(rand-nth "BRWYOG"))))

(defn mastermind-input
  "Makes a mastermind input."
  []
  (vec (repeatedly 2 mastermind-one-string)))


;; A list of data domains for the problem. Each domain is a vector containing
;; a "set" of inputs and two integers representing how many cases from the set
