             me (calculate-meta-errors new-ind argmap)]
         (assoc new-ind :meta-errors me)))))
 
+

     :rand (a random floating-point value)
     :rand-bit (randomly 0 or 1)
     :age (minimize genealogical age of program)"
  [ind {:keys [meta-error-categories error-threshold] :as argmap}]
  (let [meta-error-fn (fn [cat]
                        (cond
                          (fn? cat) (cat ind argmap)

                                       (let [improvements (mapv (fn [[older-error newer-error]] 
                                                                  (- older-error newer-error))
                                                                (partition 2 1 case-history))
                                             weights (iterate (partial * (- 1 improvement-discount)) 1)
                                             sum (reduce + (mapv * improvements weights))]
                                         (if (<= sum 0) 
                                           1.0E100
