           @push end()
         else
           @push event)
+
   take: (count) ->
     return Bacon.never() if count <= 0
     withDescription(this, "take", count, @withHandler (event) ->

          @push event
        else
          Bacon.more)
  takeWhile: (f, args...) ->
    convertArgsToFunction this, f, args, (f) ->
      withDescription(this, "takeWhile", f, @withHandler (event) ->


  bufferWithTime: (delay) ->
    withDescription(this, "bufferWithTime", delay, @bufferWithTimeOrCount(delay, Number.MAX_VALUE))

  bufferWithCount: (count) ->
    withDescription(this, "bufferWithCount", count, @bufferWithTimeOrCount(undefined, count))

