               (= 'else (first expr))))
           exprs)))
 
-(defmacro where* 
+(defmacro where*
   "A simpler, less magical variant of (where). Instead of binding symbols in
   the context of an expression, where* takes a function which takes an event.
   When (f event) is truthy, passes event to children--and otherwise, passes


  (where* (fn [e] (< 2 (:metric e))) prn)

  (where* expired? 
    (partial prn \"Expired\")
    (else
      (partial prn \"Not expired!\")))"

  [args])

(defn dual
  "A stream which splits events into two mirror-images streams, based on
  (pred e).
  If (pred e) is true, calls (true-stream e) and (false-stream (expire e)).
  If (pred e) is false, does the opposite. Expired events are forwarded to both
  streams.

  (pred e) is always called once per incoming event."
  [pred true-stream false-stream]
  (fn stream [event]
