anchor.diff:  
   [<Test>]
   let ``while``() = 
  -    let i = ref 10
  +    let i = ref 10    
  +    let task = Task.TaskBuilder(continuationOptions = TaskContinuationOptions.ExecuteSynchronously)
       let t() =
           task {
               while !i > 0 do
  
positive.code: open FsCheck.NUnit
  
  [<Test>]
  let ``run delay law``() =
      fsCheck "run delay law" (fun a -> (task.Run << task.Delay << konst) a = a)
  
  #endif
negative.code:     Assert.True !started
  
  [<Test>]
  let ``waiting for a task``() =
      use cts = new CancellationTokenSource()
      let task = Task.TaskBuilder(cancellationToken = cts.Token)
      let t() = 
          task {
              let! v = Task.Factory.StartNew(fun () -> 0)
              return ()
          }
      cts.Cancel()
      match Task.run t with
      | Task.Canceled -> ()
      | Task.Error e -> Assert.Fail("Task should have been canceled, but errored with exception {0}", e)
      | Task.Successful a -> Assert.Fail("Task should have been canceled, but succeeded with result {0}", a)
  
  
  [<Test>]
  let ``exception in task``() =    
      let task = Task.TaskBuilder(continuationOptions = TaskContinuationOptions.ExecuteSynchronously)
      let t() = 
          task {
              failwith "error"
  