                    :cat (get-in spec [:synsem :cat] :top)}
           :depth depth})
 
-        debug (log/debug (str "looking for key: "
+        debug (log/trace (str "looking for key: "
                              search-for-key))
         
         bolts ;; check for bolts compiled into model

  ;; Each head child may be a leaf or
  ;; otherwise has a child with the same two options (leaf or a head child),
  ;; up to the maximum depth.
  (if (and (< depth max-depth)
           (not (= false (get-in spec [:phrasal] true))))
    (let [candidate-parents (or use-candidate-parents
                                (->>
                                 (:grammar model)
                                 (map #(unify % spec))
                                 (filter #(not (= :fail %)))
                                 (shufflefn)))]
      (if (not (empty? candidate-parents))
        (let [candidate-parent (first candidate-parents)]
          (lazy-cat

    (cond
      (not (nil? bolts))
      (do
        (log/trace (str "found compiled bolts."))
        (shufflefn (->> bolts
                        (map #(unify spec %))
                        (filter #(not (= :fail %))))))
      true
      (do (log/trace (str "no compiled bolts found for: " search-for-key))
          (lazy-seq (lightning-bolts model spec 0 depth))))))

(defn lightning-bolts
