anchor.diff:      Internal.mkFor (fun i i1 -> i1 <= i) (fun i -> i - 1) i0 i1 i2xJ
   
     let forever (xJ: Job<'x>) =
  -    {new Job<'y>() with
  -      override yJ'.DoJob (wr, yK) = {new Cont<'x>() with
  +    {new Job<'y> () with
  +      override yJ'.DoJob (wr, yK) = {new Cont<'x> () with
          override xK'.DoHandle (wr, e) = yK.DoHandle (&wr, e)
          override xK'.DoWork (wr) = xJ.DoJob (&wr, xK')
          override xK'.DoCont (wr, _) = xJ.DoJob (&wr, xK')}.DoWork (&wr)}
   
     let iterate (x: 'x) (x2xJ: 'x -> Job<'x>) =
  -    {new Job<'y>() with
  -      override yJ'.DoJob (wr, yK) = {new Cont<_>() with
  +    {new Job<'y> () with
  +      override yJ'.DoJob (wr, yK) = {new Cont<_> () with
          override xK'.DoHandle (wr, e) = yK.DoHandle (&wr, e)
          override xK'.DoWork (wr) = (x2xJ xK'.Value).DoJob (&wr, xK')
          override xK'.DoCont (wr, x) = (x2xJ x).DoJob (&wr, xK')}.DoCont (&wr, x)}
   
     let whileDo (cond: unit -> bool) (xJ: Job<'x>) =
  -    {new Job<unit>() with
  +    {new Job<unit> () with
         override uJ'.DoJob (wr, uK) = {new Cont<'x> () with
          override xK'.DoHandle (wr, e) = uK.DoHandle (&wr, e)
          override xK'.DoCont (wr, _) =
  
positive.code:         override xyJ'.DoJob (wr, xyK) =
            if 0 <= Scheduler.Waiters then
              let yK' = ParTuple<'x, 'y> (xyK)
              Worker.PushNew (&wr, {new Cont_State<_, _>(xJ) with
               override xK'.DoHandle (wr, e) = yK'.DoHandle (&wr, e)
               override xK'.DoCont (wr, a) = yK'.DoOtherCont (&wr, a)
               override xK'.DoWork (wr) =
  
negative.code:      self.Lock.Enter (owner)
       match self.exns with
        | null ->
          let exns = ResizeArray<_> ()
          exns.Add e
          self.exns <- exns
        | exns ->
  