                         (not (fail? result)))
                       (map (fn [complement]
                              (let [debug (log/debug (str "adding complement to: ["
-                                                         (get-in bolt [:rule]) " "
-                                                         (morph bolt) "]: trying lexical complement:" (morph complement)))
-                                   debug (if (= "" (morph complement))
-                                           (log/error (str "WHY IS IT EMPTY: " complement)))
+                                                         (get-in bolt [:rule]) " '"
+                                                         (morph bolt) "']: "
+                                                         "trying lexical complement:'" (morph complement) "'"))
                                    result
                                    (unify (copy bolt)
                                           (path-to-map path

(def concurrent false)
(declare path-to-map)
(declare add-complement)
(declare add-all-complements-to-bolts)
(declare add-complements-to-bolts)

(declare lightning-bolt)
(declare generate-all)

  (let [maxdepth 3 ;; maximum depth of a lightning bolt: H1 -> H2 -> H3 where H3 must be a lexeme, not a phrase.
        debug (log/trace (str "lightning-bolt@" depth " grammar:" (string/join ", " (map #(get-in % [:rule]) grammar))))
        depth (if depth depth 0)        
        debug (if parent (log/debug (str "looking for candidate head phrases with parent: " (:rule parent))))

        candidate-heads (filter #(not (fail? %))
                                  (map (fn [rule]
