                               ;; TODO: rewrite italian-specific-rules as (constrain-vals-if)(one or more)
                               italian-specific-rules)
 
-
                  (constrain-vals-if
                   (fn [val]
-                    :top)
-                  (fn [val]
-                    (unify val {:synsem {:sem {:blah 99}}})))
-
-                 (constrain-vals-if
-                  (fn [val]
-                    (if (get universals (get-in val [:synsem :sem :pred]))
-                      :top
-                      :fail))
+                    (not (nil? (get universals (get-in val [:synsem :sem :pred])))))
                   (fn [val]
                     (get universals (get-in val [:synsem :sem :pred]))))
 
                  ;; TODO: refactor this; it's very monolithic currently:
                  intransitivize
-                         
+
                  ;; if verb does specify a [:sem :obj], then fill it in with subcat info.
                  ;; TODO: refactor this; it's very monolithic currently:
                  transitivize

                                       :case case}
                              :italiano {:cat cat
                                         :case case}}))))
                         
                 ;; If a verb is not specifically marked as reflexive, it
                 ;; is {:reflexive false}, to prevent generation of reflexive
                 ;; sentences using nonreflexive verbs.

                         (= :none (get-in val [:synsem :sem :reflexive] :none))))
                  (fn [val]
                    (unify val {:synsem {:sem {:reflexive false}}})))
                 
                 ;; if object is not specified, then set to :unspec.
                 ;; this prevents translations that may have actual objects - e.g. would allow translations like:
                 ;; "io mangio" => "I eat the bread" whereas a better translation is simply "I eat".
