                          (= (get-type lexpr) [:bool])
                          (= (get-type rexpr) [:bool]))
                      (util/succ [vars2 (with-type [:eand lexpr rexpr] [:bool])])
-                     (util/err (str "expr invalid; expected bool, bool, found " (print-type (get-type lexpr)) ", " (print-type (get-type rexpr)) " in: " location))
+                     (util/err (str "expr invalid; expected bool,bool, found " (print-type (get-type lexpr)) ", " (print-type (get-type rexpr)) " in: " location))
                      )
                ]
               res)

                         (= (get-type lexpr) [:int])
                         (= (get-type rexpr) [:int]))
                     (util/succ [vars2 (with-type [:erel lexpr op rexpr] [:bool])])
                     (util/err (str "expr invalid; expected int,int, found " (print-type (get-type lexpr)) ", " (print-type (get-type rexpr)) " in: " location))
                     )
               ]
              res)


(defn check-types
  [exp-type actual-type res location]
  (if (= actual-type exp-type)
             (util/succ res)
             (util/err (str "return type invalid; expected " (print-type exp-type) ", found " (print-type actual-type) " in " location))))

(defn with-type
  [obj type]
