 (defn delete-somewhere 
   [thing lst]
   (let [locations (->> lst
-                    (map vector (iterate inc 0))
-                    (filter #(= (second %) thing))
-                    (map first))
+                       (map vector (iterate inc 0))
+                       (filter #(= (second %) thing))
+                       (map first))
         location (lrand-nth locations)]
     (concat (take location lst)
             (drop (inc location) lst))))


(defn ultra
  "Returns the result of applying the ULTRA (Uniform Linear Transformation
with Repair and Alternation) operation to parent1 and parent2."
  [parent1 parent2 max-points alternation-rate alignment-deviation mutation-rate atom-generators]
  (let [new-program (ultra-operate-on-programs (:program parent1) 
                                               (:program parent2)


(defn add-parentheses-mutate 
  "Returns a version of the given individual with one pair of parentheses added
   somewhere. Not compatible with (currently 'experimental') tagged code macros."
  [ind max-points]
  (let [expression (:program ind) 
        new-program (let [expstr (str expression)
