         break
       }
       
+    }
+
+    self._onFlush = {
+      let elements = buffer.purge()
+      output(elements)
     }
             
   }

  
  private var timer: BulkBufferTimer!
  
  private let input: (Element) -> Void
    
  public init(
    buffer: AnyBuffer<Element>,
    debounceDueTime: DispatchTimeInterval = .seconds(10),
    targets: [AnyTarget<Element>]
  ) {
    
    self.targets = targets
    
    let output: ([Element]) -> Void = { elements in

      output(elements)
    }
          
    self._send = { newElement in
      
      switch buffer.write(element: newElement) {
      case .flowed(let elements):
        // TODO: align interface of Collection
        return output(elements.map { $0 })
