 
   (description [node] (str "QueryNode -- " param-keys)))
 
+;; Record representing alpha nodes in the Rete network,
+;; each of which evaluates a single condition and
+;; propagates matches to its children.
 (defrecord AlphaNode [condition children activation]
   IAlphaActivate
   (alpha-activate [node facts memory transport]

(defprotocol IRuleSource
  (load-rules [source]))


(defprotocol ICondition
  ;; Returns a key uniquely identifying the condition.
  (condition-key [condition])


  (description [node] "ProductionNode"))

;; The QueryNode is a terminal node that stores the
;; state that can be queried by a rule user.
(defrecord QueryNode [id query param-keys]
  ILeftActivate  
  (left-activate [node join-bindings tokens memory transport] 
