 (defn add-all-comps [bolt-groups language-model total-depth truncate-children max-total-depth]
   (let [bolt-groups
         (filter #(not (empty? %))
-                bolt-groups)]
+                bolt-groups)
+        bolts (reduce concat bolt-groups)]
     (when (not (empty? bolt-groups))
+      (log/debug (str "bolt group count: " (count bolt-groups)))
+      (log/debug (str "total bolt count: " (count bolts)))
+      (log/debug (str "counts by group: [ "
+                      (string/join ","
+                                   (map (fn [group]
+                                          (count group))
+                                        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 "trying over 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))

      {:agr agr})
    (if-let [subcat1 (if (not (empty? (get-in spec [:synsem :subcat])))
                      (get-in spec [:synsem :subcat :1 :cat]))]
      {:subcat/:1/:cat subcat1
       :subcat/:1/:agr (get-in spec [:synsem :subcat :1 :agr])}))))

(defn lightning-bolts [language-model spec depth total-depth
                       & {:keys [max-total-depth]
