     (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)))))
+           "]"))))

        result (if (or (nil? result)
                       (= "" result))
                 (get-in input [:english :english] "")
                 (str "r1: " result))
        result (if (or (nil? result)
                       (= "" result))
                 (get-in input [:english] "")
                 (str "r2: " result))
        result (if (or (nil? result)
                       (= "" result))
                 (get-in input [:rule] "")
                 (str "r3: " result))
        result (if (or (nil? result)
                       (= "" result))
                 (exception

                                 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
