     (write-lexicon "en" lexicon)
     (log/info (str "done writing lexicon."))
     (log/info (str "generating with this many verbs: " (.size (reduce concat (vals root-verbs)))))
+    ;; TODO: rewrite with threading macro (->)
     (.size (pmap (fn [verb]
                    (let [root-form (get-in verb [:english :english])]
                      (log/debug (str "generating from root-form:" root-form))

                  (:morph  small-plus-plus-np)))

(defn translate [source-language-short-name & [root]]
  "generate English translations of all available expressions in source language. Optionally takes a root form of a verb in the source language."
  ;; example usage: (translate "es" "abrazar")
  (rewrite-lexicon)
  (let [spec :top
        ;; {:synsem {:sem {:pred :arrive}}}

         (map (fn [lexeme-set]
                (filter (fn [lexeme]
                          (and
                           ;; for development, restrict :pred to a single value.
                           (or true (= (get-in lexeme [:synsem :sem :pred]) :talk))
                           (= (get-in lexeme [:synsem :cat]) :verb)
                           (= (get-in lexeme [:synsem :infl]) :top)
                           (not (= :top (get-in lexeme [:synsem :sem :pred] :top)))))
