         (when (not (empty? indices))
           (let [[_ events] (swap! state update indices event)]
             (call-rescue events children)))))))
-  
+
 (defmacro project
   "Projects an event stream into a specific basis--like (coalesce), but where
   you only want to compare two or three specific events. Takes a vector of

(defmacro split
  "Behave as for split*, expecting predicates to be (where) expressions instead
  of functions. Example:
  
  (split
    (< 0.9  metric) (with :state \"critical\" index)
    (< 0.75 metric) (with :state \"warning\" index)

  [n dt & children]
  (part-time-simple
    dt

    (fn reset [[sent buffer]]
      (if (empty? buffer)
        ; We didn't carry over any events from the last window
        [0 []]
        ; We did carry over events.
        [1 []]))

    (fn add [[sent buffer] event]
      (if (< sent n)
        [(inc sent) buffer]
