 
 (defn overh
   "add given head as the head child of the phrase: parent."
-  [parent head morph]
+  [parent head]
   (when (and (map? parent)
              (map? head))
     (do

   (fail? (unifyc (get-in parent [:comp :synsem :subcat] :top)
                  (get-in child [:synsem :subcat] :top)))))

(defn moreover-head [parent child lexfn-sem-impl morph]
  (let [morph (if morph morph (fn [x] (strip-refs (dissoc x :serialized))))]
    (log/debug (str "moreover-head (candidate) parent: [" (get-in parent [:rule]) "] '" (morph parent) "' sem:    " (strip-refs (get-in parent '(:synsem :sem) :no-semantics))))
    (log/debug (str "moreover-head (candidate) head child: [" (get-in parent [:child]) "] '" (morph child) "' sem:" (strip-refs (get-in child '(:synsem :sem) :top))))

     (if (not is-fail?)
       (list result)))))

(defn overhc [parent head comp]
  (overc (overh parent head) comp))

;; TODO: distinguish between when:
;; 1) called with only a child1 (no child2),
