          (not (zero? c2-diff))
          (not= c1-diff c2-diff))))
 
+(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 (filter #(= (:instruction %) :from-mate) c1))]
+    (if (> c1-from-mate 0)
+      (let [c2 (produce-child-genome-by-autoconstruction g mate false argmap)
+            c2-from-mate (count (filter #(= (:instruction %) :from-mate) c2))]
+        (and (> c2-from-mate 0)
+             (not= c1-from-mate c2-from-mate)))
+      false)))
+    
 
 (defn diversifying?
   "Returns true iff genome g passes the diversification test."

     :three-gens-size-and-instruction three-gens-size-and-instruction-diversifying?
     :diffmeans diffmeans-diversifying?
     :minimal-reproductive-difference minimal-reproductive-difference-diversifying?
     :use-mate-differently use-mate-differently-diversifying?
     :no-clones no-clones-diversifying?
     :none (fn [genome argmap] true))
    g
