                        (not (= :unspec (get-in val [:synsem :sem :obj])))
                        (not (= '() (get-in val [:synsem :subcat :2])))
                        (not (nil? (get-in val [:synsem :sem :obj] nil))))
-                  (unifyc val
-                          transitive)
+                  (unify val
+                         transitive)
                   
                   (= (get-in val [:synsem :cat]) :verb)
-                  (unifyc val
-                          verb-subjective)
+                  (unify val
+                         verb-subjective)
                   true
                   val))
           vals))))

        (merge-with concat lexicon-stage-3 exceptions)]
    lexicon))

(defn unify [ & args]
  "like unify/unify, but unify/copy each argument before unifying."
  (do
    (log/trace (str "(lexfn)unify args: " args))
    (log/trace (str "(lexfn)unify first arg: " (first args)))
    (apply unifyc args)))

(defn cache-serialization [entry]
  "Copying ((unify/copy)ing) lexical entries during generation or parsing is done by serializing and then deserializing. 

                     (and (= (get-in val [:synsem :cat])
                             :verb)
                          (= :none (get-in val [:synsem :subcat :2] :none)))
                     (list (unify val intransitive))
                     
                     ;; else just return vals:
                     true
                     (do (if (= :verb (get-in val [:synsem :cat]))
