anchor.diff:  
       // integrate all steps
       let res = 
  -        delta |> SF.integrate [] (List.append)
  +        delta 
  +            |> SF.integrate [] (fun l e -> l @ e)
  +            ||> List.rev
  +            
  +
  +    let withCancel =
  +        SF.switchTrue (SF.latest cancel)
  +            SF.stop
  +            (SF.arr id)
   
       // start the sf as task
  -    res |> SF.reactimate () (printfn "out: %A") |> Async.Start
  +    (res >>> withCancel) |> SF.reactimate () (printfn "out: %A") |> Async.Start
   
       
   
  
positive.code:     abstract member dependencies : list<Token>
  
  module SF =
  
      type private ModBuffer<'a>(m : IMod<'a>) as this =
          inherit AdaptiveObject()
  
negative.code:     let buffers = Dict<Token, IBuffer>()
      let mutable containsTime = false
  
      member x.Caller = caller
  
      member x.IsEmpty =
          not containsTime && lock buffers (fun () -> buffers.Values |> Seq.forall (fun b -> b.IsEmpty))
  
  