                              0 
                              (if 
                                (some (fn [sib]
-                                       (or (zero? (-> (:history sib)
+                                       (or (zero? (-> (:history sib) ;; sib solved
                                                       (first)
                                                       (nth case-index)))
-                                           (not= (-> (:history sib)
+                                           (not= (-> (:history sib) ;; sib error different than mom's
                                                      (first)
                                                      (nth case-index))
                                                  (-> (:history sib)

                       (max (sequence-similarity (:genome ind) (:parent1-genome ind))
                            (sequence-similarity (:genome ind) (:parent2-genome ind)))
                       1.0))
              ;
              (= cat :reproductive-convergence)
              (if (and (:parent1-genome ind) (:parent2-genome ind))

                                     siblings)
                               0
                               1)))))))
              ;
              (= cat :case-family-variation)
              (if (not (:print-history argmap))
                (throw
                  (Exception.
                    ":print-history must be true for :case-family-variation"))
                (if (or (empty? (:parent-uuids ind))
                        (empty? (rest (:history ind))))
                  (vec (repeat (count (:errors ind)) 1))
                  (let [siblings (filter #(and (= (first (:parent-uuids ind))
                                                  (first (:parent-uuids %)))
                                               (not (empty? (rest (:history %))))) ; new random sibs don't count
                                         evaluated-population)]
                    (vec (for [case-index (range (count (:errors ind)))]
                           (if (zero? (nth (:errors ind) case-index)) ;; solved
                             0 
                             (if 
                               (some (fn [sib] ;; sibling solved
                                       (zero? (-> (:history sib)
                                                  (first)
                                                  (nth case-index))))
                                     siblings)
                               0
                               (if (some (fn [sib] ;; sib error different than mom's
                                           (not= (-> (:history sib)
                                                     (first)
                                                     (nth case-index))
                                                 (-> (:history sib)
                                                     (second)
                                                     (nth case-index))))
                                         siblings)
                                 1
                                 0))))))))
              ;
              (= cat :washout-mother)
              (if (not (:print-history argmap))
