       makeObservable(f(value)).takeUntil(stream))
 
   flatMapError: (fn) =>
-    withDescription this, "flatMapError", fn, @mapError((err) -> new Bacon.Error(err)).flatMap (x) ->
+    withDescription(this, "flatMapError", fn, @mapError((err) -> new Bacon.Error(err)).flatMap (x) ->
       if x instanceof Bacon.Error
         fn(x.error)
       else
-        Bacon.once(x)
+        Bacon.once(x))
 
   flatMapConcat: ->
-    withDescription this, "flatMapConcat", arguments...,
-      @flatMapWithConcurrencyLimit 1, arguments...
+    withDescription(this, "flatMapConcat", arguments...,
+      @flatMapWithConcurrencyLimit 1, arguments...)
 
   bufferingThrottle:  (minimumInterval) ->
-    withDescription this, "bufferingThrottle", minimumInterval,
+    withDescription(this, "bufferingThrottle", minimumInterval,
       @flatMapConcat (x) ->
-        Bacon.once(x).concat(Bacon.later(minimumInterval).filter(false))
+        Bacon.once(x).concat(Bacon.later(minimumInterval).filter(false)))
 
   not: -> withDescription(this, "not", @map((x) -> !x))
   log: (args...) ->

      else
        buffer.values.push(event.value())
        onInput(buffer)
      reply

  merge: (right) ->
    assertEventStream(right)
    left = this
    withDescription left, "merge", right, Bacon.mergeAll(this, right)

  toProperty: (initValue) ->
    initValue = None if arguments.length == 0
    withDescription this, "toProperty", initValue, @scan(initValue, latterF, {lazyF: true})

  toEventStream: -> this


    if not isFunction(delay)
      delayMs = delay
      delay = (f) -> Bacon.scheduler.setTimeout(f, delayMs)
    withDescription(this, "buffer", @withHandler (event) ->
      buffer.push = @push
      if event.isError()
        reply = @push event
