                   (if (= true mask-populate-errors)
                     (log/warn message)
                     ;; else
-                    (throw (Exception. message)))))
+                    (let [target-language-model (if (future? target-language-model)
+                                                  @target-language-model
+                                                  target-language-model)]
+                      (log/error message)
+                      (log/error "grammar: " (map :rule (:grammar target-language-model)))
+                      (log/error "lexicon: " (map (:morph target-language-model)
+                                                  (sort (keys (:lexicon target-language-model)))))
+                      (throw (Exception. message))))))
         source-language-sentence (engine/generate {:synsem {:sem semantics
                                                             :subcat '()}}
                                                   source-language-model

                                                  source-language-model :enrich true)

        semantics (strip-refs (get-in target-language-sentence [:synsem :sem] :top))
        debug (log/debug (str "semantics: " semantics))

        target-language-surface (target-fo target-language-sentence)
        debug (log/debug (str "target surface: " target-language-surface))

(defn populate [num source-language-model target-language-model & [ spec table ]]
  (let [spec (if spec spec :top)
        debug (log/debug (str "populate spec(1): " spec))
        debug (log/trace (str "type of source language model: " (type source-language-model)))
        debug (log/trace (str "type of target language model: " (type target-language-model)))
        spec (cond
              (not (= :notfound (get-in spec [:synsem :sem :subj] :notfound)))
              (unify spec
