        (over-each-parent-comp (rest parents) comp)))
     (do
       (log/trace (str "over-each-parent-comp: done. returning nil"))
-      nil)))
-
-(defn over-each-head-child [parent children]
-  (log/trace (str "over-each-head-child: parent type: " (type parent)))
-  (log/trace (str "over-each-head-child: head children type: " (type children)))
-  (if (not (empty? children))
-    (let [each-child (first children)]
-      (lazy-cat
-       (overh parent each-child)
-       (over-each-head-child parent (rest children))))
-    (do
-      (log/trace (str "over-each-head-child: done. returning nil."))
       nil)))
 
 (def ^:dynamic *extra-diagnostics* false)

     (log/trace (str "head is a seq - actual type is " (type head)))
     (filter (fn [result]
               (not (fail? result)))
             (over-each-head-child parent head-children)))

   true
   ;; TODO: 'true' here assumes that both parent and head are maps: make this assumption explicit,
   ;; and save 'true' for errors.

(declare overh)
(declare overc)

(defn over-each-parent-comp [parents comp]
  (log/trace (str "over-each-parent-comp: parents type: " (type parents)))
  (log/trace (str "over-each-parent-comp: comp type: " (type comp)))
