anchor.diff:     // Run to a fixed point using inference rules
      printfn "adding initial node: %s" src.Node.Loc
      let changed = ref (Set.singleton src)
  +   let first = ref true
      
      let inline pop() = 
         let ret = Set.minElement !changed
  
positive.code:          let namev = Topology.router v.Node.Loc ti
           let nameu = Topology.router u.Node.Loc ti
           printfn "  for nodes: (%s,%s)" namev nameu
           //
           printfn "  got labels: (%s,%s,%s,%s)" m n e1 e2
           // if we have an A label, then we have an S label
           if kS < kA then learned.[v] <- (kA, kA)
  
negative.code:                printfn "   Rule 1-2"
                 match findMin enc e1 with
                 | Some k -> 
                    let m = 
                       if !first then k
                       else min k kA
                    if m > kS' then 
                       learned.[u] <- (m, kA)
                       printfn "     adding: %s to the stack" (Topology.router u.Node.Loc ti)
                       push u
                 | None -> ()
  