anchor.diff:                      cts.Cancel()
                       do! a
                   }, cts.Token)
  -            forceAsync()
  +            do! Async.Sleep 500
               equal !cancelled true
               equal !ops "A"
           }
  
positive.code: open WebSharper
  open WebSharper.JavaScript
  open WebSharper.Testing
  
  [<Inline "WebSharper.Concurrency.scheduler().tick()">]
  let tick() = ()
  
  [<Inline "WebSharper.Concurrency.scheduler().idle">]
  let isIdle() = true
  
  [<JavaScript>]
  let forceAsync() =
      while not (isIdle()) do tick()
  
  type Message =
      | Increment of int
  
negative.code:             let e = Event<int>()
              let res = ref 0
              async {
                  let! r = Async.AwaitEvent e.Publish
                  res := r
              } |> Async.StartImmediate
              e.Trigger(3)
              do! Async.Sleep 500
              equal !res 3
          }
  
          Test "StartImmediate" {
              let x, y =
                  let res = ref 0 
                  async {
                      incr res 
                  }
                  |> Async.Start
                  let x = !res
                  async {
                      incr res 
                  }
                  |> Async.StartImmediate
                  x, !res
              equal x 0
              equal y 1
          }
      }
  