anchor.diff:  
   let async = AsyncBuilder()
   
  -[<FunJS.JSEmit("return setTimeout({0}, {1});")>]
  -let setTimeout (handler:unit -> unit, milliseconds:float) = failwith "never"
  -  
   type Async =
      static member FromContinuations(f) = protectedCont <| fun k ->
         f (k.Cont, k.Aux.ExceptionCont, k.Aux.CancelledCont)
  
positive.code:       token.Cell.Value := true
  
  type AsyncParamsAux =
     { ExceptionCont : string -> unit
       CancelledCont : string -> unit 
       CancellationToken : CancellationToken }
  
  
negative.code:    static member StartImmediate(workflow:Async<unit>, ?cancellationToken) =
        let token = defaultArg cancellationToken { Cell = None }
        let (Cont f) = workflow
        let aux = { StackCounter = ref 0; ExceptionCont = ignore; 
                    CancelledCont = ignore; CancellationToken = token }
        f { Cont = ignore; Aux = aux }
  
     static member Sleep(milliseconds:int) = 
  