anchor.diff:  open System.Reflection
   open System.Diagnostics
   open System.Threading
  +open System.Threading.Tasks
   
   // TODO: move to internal
   type SourceLocation =
  
positive.code:   let foldParallelLimit maxParallelism folder state (s:_ seq) =
      foldParallelLimitWithCancel (new CancellationTokenSource())
                                  maxParallelism folder state s
  
  // TODO: move to internal
  [<ReferenceEquality>]
  
negative.code:   let bind fn a =
      async.Bind(a, fn)
  
    // let foldSequentiallyWithCancel (ct:CancellationTokenSource)
    //                                folder state (s:_ seq) =
    //   let mutable state = state
    //   Async.Start(async {
    //     use e = s.GetEnumerator()
    //     while not ct.IsCancellationRequested && e.MoveNext() do
    //       let! item = e.Current
    //       state <- folder state item
    //     ct.Cancel()
    //   }, ct.Token)
    //   Async.AwaitWaitHandle ct.Token.WaitHandle |> map (fun _ -> state)
  
    // let foldSequentially folder state (s:_ seq) =
    //   foldSequentiallyWithCancel (new CancellationTokenSource())
    //                              folder state s
  
    let foldParallelLimitWithCancel (ct:CancellationTokenSource)
                                    maxParallelism folder state (s:_ seq) =
  