       unsub
     resultProperty = new Property describe(this, "scan", seed, f), subscribe
 
-  fold: (seed, f, options) ->
-    withDescription(this, "fold", seed, f, @scan(seed, f, options).sampledBy(@filter(false).mapEnd().toProperty()))
+  fold: (seed, f) ->
+    withDescription(this, "fold", seed, f, @scan(seed, f).sampledBy(@filter(false).mapEnd().toProperty()))
 
   zip: (other, f = Array) ->
     withDescription(this, "zip", other,

          return reply
      reply)

  scan: (seed, f, options = {}) ->
    f_ = toCombinator(f)
    f = if options.lazyF then f_ else (x,y) -> f_(x(), y())
    acc = toOption(seed).map((x) -> _.always(x))
    subscribe = (sink) =>
      initSent = false
      unsub = nop
      reply = Bacon.more
      sendInit = ->
        unless initSent
          acc.forEach (valueF) ->
            initSent = true
            reply = sink(new Initial(valueF))
            if (reply == Bacon.noMore)
              unsub()
              unsub = nop

        unless shouldHold
          @takeUntil(putToHold)
        else
          @scan([], ((xs,x) -> xs.concat(x))).sampledBy(releaseHold).take(1).flatMap(Bacon.fromArray))

  startWith: (seed) ->
    withDescription(this, "startWith", seed,
