                           (take max-generated-complements
                                 (lazy-cat filtered-lexical-complements phrasal-complements))
                           true
-                          (take max-generated-complements (lazy-cat phrasal-complements filtered-lexical-complements))))))))
+                          (do
+                            (log/debug (str "successfully generated some complements for bolt:"
+                                            (show-bolt bolt language-model)
+                                            " matching spec:"
+                                            (spec-info spec)))
+
+                            (take max-generated-complements (lazy-cat phrasal-complements filtered-lexical-complements)))))))))
 
 (defn spec-info [spec]
   "give a human-readable summary of _spec_."

(defn add-all-comps [bolt-groups language-model total-depth truncate-children max-total-depth]
  (let [bolt-groups
        (filter #(not (empty? %))
                bolt-groups)]
    (when (not (empty? bolt-groups))
      (lazy-mapcat
       (fn [bolt]
         (log/debug (str "add-all-comps: adding comps to bolt: " (show-bolt bolt language-model)))

                                 subset (filter #(not (fail? (unifyc filter-on-spec %)))
                                                candidate-lexemes)]
                             (filter #(not (nil? %))
                                     (do (log/debug (str "adding lexical heads to parent:" (:rule parent)))
                                         (log/debug (str " with lexemes:" (string/join ";" (sort (map morph subset)))))
                                         (log/debug (str " with spec:" (spec-info spec)))
                                         (if (not (empty? subset))
