     (exception (str "don't call show-bolt with bolt=null."))
     (if (not (empty? path))
       (str "[" (get-in bolt [:rule])
-           " '" (morph-with-recovery morph bolt) "' "
-           (let [rest-str (show-bolt (get-in bolt [:head]) (rest path) morph)]
-             (if (not (nil? rest-str))
-               (str " -> " rest-str  "]")))))) )
+           " '" (morph-with-recovery morph bolt) "'"
+           (let [head-bolt (get-in bolt [:head])]
+             (if (not (nil? head-bolt))
+               (let [rest-str (show-bolt (get-in bolt [:head]) (rest path) morph)]
+                 (if (not (nil? rest-str))
+                   (str " -> " rest-str)))))
+           "]"))))

  (log/debug (str "generate-all: generating from spec with cat "
                  (get-in spec [:synsem :cat])))
  (if (= false (get-in spec [:phrasal] true))
    (exception (str "do not call generate-all with spec:[phrasal=true]"))
    ;; else, phrasal:
    (let [total-depth (if total-depth total-depth 0)
          add-complements-to-bolts
          (fn [bolts path]
            (log/debug (str "generate-all: "
                            "add-complements-to-bolts: "
                            (show-bolt (first bolts) path morph)
                            "@" path))
            (mapcat
             #(if (not (= :none (get-in % path :none)))
                (lazy-seq (add-complement % path :top grammar lexicon index morph 0 (+ total-depth (count path))))
                [%])
             bolts))

          expressions
          (lazy-seq

                                 result))
        filtered-lexical-complements (filter (fn [lexeme]
                                               (complement-pre-check lexeme bolt path))
                                             complement-candidate-lexemes)]
    (filter #(not (fail? %))
            (mapfn (fn [complement]
                    (unify (copy bolt)
                           (path-to-map path
