anchor.diff:  let ``for``() =
       let i = ref 0
       let s = [1; 2; 3; 4]
  -    let task = Task.TaskBuilderWithToken(continuationOptions = TaskContinuationOptions.ExecuteSynchronously)
  +    let task' = Task.TaskBuilderWithToken(continuationOptions = TaskContinuationOptions.ExecuteSynchronously)
       let t =
  -        task {
  +        task' {
               for x in s do
                   i := !i + x
                   do! Task.Factory.StartNew ignore
  
positive.code: 
  
  [<Test>]
  let ``bind should chain two tasks parametrized by CancellationToken``() =
      let task = Task.TaskBuilderWithToken()
      let t1 = 
          task {
              return! Task.Factory.StartNew(fun () -> 100)
          }
      let t2 = 
          task {
              return! Task.Factory.StartNew(fun () -> 200)
          }
      let t = 
          task {
              let! v1 = t1
              let! v2 = t2
              return v1 + v2
  
negative.code:     checkCancelledWithToken cts t
  
  [<Test>]
  let ``task should return the right value after let!``() =    
      let t = 
          task' {
              let! v = Task.Factory.StartNew(fun () -> 100)
              return v
          }
      checkSuccess 100 t
  
  [<Test>]
  let ``task should return the right value after return!``() =    
      let t =
          task' {
              return! Task.Factory.StartNew(fun () -> "hello world")
          }    
      checkSuccess "hello world" t
  
  [<Test>]
  let ``exception in task``() =
      let task' = Task.TaskBuilderWithToken(continuationOptions = TaskContinuationOptions.ExecuteSynchronously)
      let t = 
          task' {
              failwith "error"
          }
      match Task.run (fun () -> t CancellationToken.None) with
  