     :else (recur (conj (next (next expr)) (mk-application (first expr) (second expr))))))
 
 (example (binarize-application '(f a b c d))
-         => '((((f a) b) c) d))
-
-(example (binarize-application (map keyword '(f a b c d)))
-         => '((((:f :a) :b) :c) :d))
+         => (mk-application
+             (mk-application
+              (mk-application
+               (mk-application 'f 'a)
+               'b)
+              'c)
+             'd))
 
 
 (parser/register-term-other-parser

  (unparse [app]
    (let
        [urator (unparse (:rator app))
         urand (unparse (:rand app))]
      (println (str "application '" (:rator app) "' ?" (instance? Application (:rator app))))
      (if (instance? Application (:rator app))
        (append urator urand)
        (conj urand urator)))))

(example (unparse (parse '((univ 1) (univ 2) (univ 3))))


;;{


(example (unparse (mk-univ 2)) => '(univ 2))

;;{

;; ### Applications
