anchor.diff:                 printfn "   Rule 1-2"
                  match findMin enc e1 with
                  | Some k -> 
  -                  if k > kS' then 
  -                     learned.[u] <- (k, kA)
  +                  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 -> ()
  
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:                match findMin enc e1 with
                 | Some k -> 
                    printfn "   found min: %d" k
                    let m = 
                       if !first then k
                       else min k kS
                    if m > kS' then 
                       learned.[u] <- (m, kA)
                       printfn "     adding: %s to the stack" (Topology.router u.Node.Loc ti)
                       push u
                 | None -> ()
  