    {:unify-with {:synsem {:cat :noun
                           :agr {:number :sing}}}}})
 
-
-
-(defn analyze [surface-form lookup-fn]
+(defn analyze [surface-form lexicon]
   "return the map incorporating the lexical information about a surface form."
   (let [replace-pairs
         (merge 

     ;; might be either the canonical form of a word, or an irregular conjugation of a word.
     (if (not (empty? analyzed-via-identity))
       analyzed-via-identity
       (lookup-fn surface-form)))))

(def pronoun-semantic-gender-agreement
  (let [gender (atom :top)]

                 (fn [key]
                   (if (keyword? key)
                     (let [lexical-form surface-form
                           looked-up (get lexicon lexical-form)]
                       (map #(unifyc % (:unify-with (get replace-pairs key)))
                            looked-up))))
                 (keys replace-pairs)))]
