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:     let reactimate (input : 'a) (output : 'b -> unit) (sf : sf<'a, 'b>) =
          
          let r = Reactimator(sf, input, output)
          r.Step()
  
          let rec run() =
              async {
                  let! worked = Async.AwaitWaitHandle r.StepEvent.WaitHandle
  
                  if not worked then
                      printfn "reactimate failed"
                  else
                      r.Step()
                      return! run()
  
              }
  
          run()
  
  
  [<AutoOpen>]
  
negative.code:     abstract member dependencies : list<Token>
  
  module SF =
  
      exception private EndExn
  
      type private ModBuffer<'a>(m : IMod<'a>) as this =
          inherit AdaptiveObject()
  