Clojure RETE implementation