(defmacro eval-when-compile [& body]
  (binding [*compile-files* false]
    (eval `(do ~@body)))
  nil)

(eval-when-compile
  (defmacro ! [x]
    `(not ~x))
)

(defn nor [x y]
  (and (! x) (! y)))

(println [(nor true true) (nor true false) (nor false true) (nor false false)])
