    [clojure.set :as set]
    [clojure.tools.logging :as log]
    [clojure.core :as core]
+   [clojure.string :as string]
    [babel.pos :refer :all]
    [dag-unify.core :refer :all :exclude (unify)])) ;; exclude unify because we redefine it here using unifyc (copy each arg)
 

                          (not (= '() (get-in val [:synsem :subcat :2]))))

                     (do
                       (list (unifyc val 
                                     transitive) ;; Make a 2-member list. member 1 is the transitive version..

                             ;; .. and the other member of the list being the intransitive version.
                             ;; Turn the singular, transitive form into an intransitive form by
                             ;; doing some surgery on it: (remove the object) and intransitivize it
                             (let [without-object  ;; intransitive version
                                   (unifyc intransitive-unspecified-obj
                                           (dissoc-paths val
                                                         (list [:serialized]
                                                               [:synsem :sem :obj]
                                                               [:synsem :subcat :2])))]

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