anchor.diff:        override uJ'.Do () =
           if cond () then upcast u2xJ () else null} :> Job<_>
     let inline whileDoIgnore (cond: unit -> bool) (xJ: Job<_>) =
  -    whileDoDelay cond (fun () -> xJ)
  +    whileDoDelay cond ^ fun () -> xJ
     let inline whileDo cond (uJ: Job<unit>) =
       whileDoIgnore cond uJ
   
  
positive.code:     {new TaskToJob () with
        override xJ'.Start () = u2uT ()} :> Job<unit>
  
    let inline liftTask x2yT x = fromTask (fun () -> x2yT x)
    let inline liftUnitTask x2uT x = fromUnitTask (fun () -> x2uT x)
  
    let inline awaitTask (xT: Task<'x>) = fromTask (fun () -> xT)
    let inline awaitUnitTask (uT: Task) = fromUnitTask (fun () -> uT)
  
    let inline bindTask (x2yJ: 'x -> #Job<'y>) (xT: Task<'x>) =
      {new BindTask<'x, 'y> () with
  
negative.code:       let registration = token.Register (fun () ->
          OperationCanceledException ()
          |> IVar.fillFailure cancelled
          |> Scheduler.startIgnore ^ initGlobalScheduler ())
        let ctx = SynchronizationContext.Current
        Worker.RunOnThisThread (initGlobalScheduler (), cancelled <|> xA, {new Cont_State<'x, Cont<unit>>() with
         override xK'.GetProc (wr) = Handler.GetProc (&wr, &xK'.State)
  