anchor.diff:      Assert.True !started
   
   [<Test>]
  -let ``exception in task``() =
  +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"
  
positive.code: 
  [<Test>]
  let ``while``() = 
      let i = ref 10
      let t() =
          task {
              while !i > 0 do
  
negative.code: open FsCheck.NUnit
  
  [<Test>]
  let ``run delay law``() =    
      let task = Task.TaskBuilder(continuationOptions = TaskContinuationOptions.ExecuteSynchronously)
      fsCheck "run delay law" (fun a -> (task.Run << task.Delay << konst) a = a)
  
  #endif