anchor.diff:    let select xAs = choose xAs :> Job<'x>
   
     let tryIn (xA: Alt<'x>) (x2yJ: 'x -> Job<'y>) (e2yJ: exn -> Job<'y>) =
  -    {new Alt<'y>() with
  +    {new Alt<'y> () with
         override yJ'.DoJob (wr, yK) =
          let xK = TryInCont (x2yJ, e2yJ, yK)
          wr.Handler <- xK
  
positive.code:     let inline createFull (x: 'x) = MVar<'x> (x)
    let create () = ctor Now.create ()
    let createFull x = ctor Now.createFull x
    let inline fill (xM: MVar<'x>) (x: 'x) = MVarFill<'x>(xM, x) :> Job<unit>
    let inline take (xM: MVar<'x>) = xM :> Job<'x>
    let inline modifyFun (x2xy: 'x -> 'x * 'y) (xM: MVar<'x>) =
      take xM >>= (x2xy >> fun (x, y) -> fill xM x >>% y)
  
negative.code:     raise (exn ("forwarded", e))
  
    let inline ctor x2y x =
      {new Job<'y> () with
        override yJ'.DoJob (wr, yK) =
         yK.DoCont (&wr, x2y x)}
  
  