Forward-chaining rules in Clojure