   consume: ->
     values = @queue
     @queue = []
-    -> values
-  push: (x) -> @queue.push(x())
+    {value: -> values}
+  push: (x) -> @queue.push(x.value())
   hasAtLeast: -> true
 
 Source.isTrigger = (s) ->

            sendInit() unless event.isInitial()
            initSent = true
            prev = acc.getOrElse(-> undefined)
            next = _.cached(-> f(prev, event.value))
            acc = new Some(next)
            next() if (options.eager)
            sink (event.apply(next))

        Bacon.once(x).concat(Bacon.later(minimumInterval).filter(false)))

  not: -> withDescription(this, "not", @map((x) -> !x))

  log: (args...) ->
    @subscribe (event) -> console?.log?(args..., event.log())
    this
