                                           (string/join ","
                                            (map (fn [child]
                                                   (str "[" (:rule child) "]"
-                                                       "'" (morph child) "'"
+                                                       "'"
+
+                                                       (try
+                                                         (morph child)
+                                                         (catch Exception e
+                                                           "(exception caught)"))
+
+                                                       "'"
                                                        ))
                                                 phrasal-children))))
                           (over/overh parent phrasal-children morph)))

                        (let [result (over/overh parent (lazy-shuffle (get-lex parent :head index spec)) morph)]
                          (log/debug (str "results of attaching lexemes to: " (get-in parent [:rule]) ": (size=" (if result (.size result) "0") ")"
                                          (string/join ","
                                                       (map #(if morph (morph %1)
                                                                 "(string)")
                                                            result))))
                          result)))
                    candidate-parents)

                               ". Complements tried were: " (morph complement-candidate-lexemes)))
                  
                ;; TODO: show warn about not finding any phrasal complements, as well as not finding any lexical complements.
                (vec (map (fn [lexeme]
                            (log/debug (str " path in bolt: " path))
                            (log/debug (str " cat@" path " = " (strip-refs (get-in bolt (concat path [:synsem :cat])))))
                            (log/trace (str " sem@" path " = " (strip-refs (get-in bolt (concat path [:synsem :sem])))))
                            (log/debug (str " pred@" path " = " (strip-refs (get-in bolt (concat path [:synsem :sem :pred])))))
                            (log/debug (str " agr@" path " = " (strip-refs (get-in bolt (concat path [:synsem :agr]))))))
                          complement-candidate-lexemes))))
            (do (log/debug (str "add-complement after adding complement: "
                                (try
                                  (morph return-val)
                                  (catch Exception e
                                    "(exception caught)"))))
                return-val))))

      ;; path doesn't exist in bolt: simply return the bolt unmodified.
