anchor.diff:                    <| raised
                <|> closes ^=> fun g ->
                      match key2br.TryGetValue g.key with
  -                    | Just g' when obj.ReferenceEquals (g', g) ->
  +                    | true, g' when obj.ReferenceEquals (g', g) ->
                         key2br.Remove g.key |> ignore
                         g.var *<= Nil >>=. oldC serve ss g.key
                       | _ -> serve ss
  
positive.code:                         Job.tryInDelay <| fun () -> keyOf s
                           <| fun k ->
                                match key2br.TryGetValue k with
                                 | Just g ->
                                   let i = g.var
                                   let n = IVar ()
                                   g.var <- n
                                   i *<= Cons (s, n) >>=. oldK serve ss k s n
                                 | Nothing ->
                                   let i' = IVar ()
                                   let i = Alt.always (Cons (s, i'))
                                   let g = {key = k; var = i'}
  
negative.code:      | null -> yK y
       | e -> eK e
    let inline tryIn u2v vK eK = tryAp u2v () vK eK
  
    type Cons<'x> =
      | Cons of Value: 'x * Next: Promise<Cons<'x>>
  