         (if use-child false true)))))
 
 
+

(defn use-mate-differently-diversifying?
  "Returns true iff genome g passes the diversification test."
  [g argmap]
  (let [mate (vec (repeat (count g) {:instruction :from-mate}))
        c1 (produce-child-genome-by-autoconstruction g mate false argmap)
        c1-from-mate-count (count (filter #(= (:instruction %) :from-mate) c1))]
    (if (> c1-from-mate-count 0)

(defn si-and-mate-use-diversifying?
  "Returns true iff genome g passes the diversification test."
  [g argmap]
  (let [mate (vec (repeat (count g) {:instruction :from-mate :close 0}))
        c1 (produce-child-genome-by-autoconstruction g mate false argmap)
        c1-from-mate-count (count (filter #(= (:instruction %) :from-mate) c1))]
    (if (> c1-from-mate-count 0)
