 Bacon.dependsOn = (a,b) ->
   if a == b
     return false
-  deps = a.deps()
+  deps = a.allDeps
   for dep in deps
     if dep == b
       return true

        _.flatMap findDeps, x
      else if isObservable(x)
        [x]
      else
        []
    @apply = (obs) ->
      obs.deps = -> findDeps(args)
      obs.toString = -> _.toString(context) + "." + _.toString(method) + "(" + _.map(_.toString, args) + ")"
      obs.desc = -> { context, method, args }
      obs

    invoke = if lazy then _.id else (f) -> f()
    @subscribe = obs.subscribe if not @subscribe?
    @markEnded = -> @ended = true
    @toString = @obs.toString
    if consume
      @consume = () -> invoke(queue.shift())
      @push  = (x) -> queue.push(x)
