Making a datalog engine in clojure