     unsub
 
   hasWaiters = -> waiters.length > 0
-
 
   { whenDoneWith, hasWaiters, inTransaction, currentEventId, wrappedSubscribe }
 )()

      else if (delay != undefined)
        buffer.schedule()
    withDescription(this, "bufferWithTimeOrCount", delay, count, @buffer(delay, flushOrSchedule, flushOrSchedule))


  buffer: (delay, onInput = (->), onFlush = (->)) ->
    buffer = {

      f(ctxStack, values)
    rootContext
  withDescription(Bacon, "combineTemplate", template, Bacon.combineAsArray(streams).map(combinator))

Bacon.retry = (options) ->
  throw new Exception("'source' option has to be a function") unless isFunction(options.source)
