anchor.diff:          | Yes of HashSet<Node>
           | No
   
  -    let protect (idx: int) (doms: Domination.DominationSet) (cg1,n1) (cg2,n2) : ProtectResult = 
  +    let protect (idx: int) (doms: Domination.DominationTree) (cg1,n1) (cg2,n2) : ProtectResult = 
           if loc n1 <> loc n2 then No else
           let q = Queue()
           let seen = HashSet()
  
positive.code:                 y <- po.[finger2]
          finger1
          
      let dominators (cg: T) root direction : DominationSet =
          let adj = if direction = Up then neighbors cg else neighborsIn cg
          let dom = Dictionary()
          let reach = Reachable.postOrder cg root direction
  
negative.code:         let domRev = Domination.dominators cg cg.End Up
          cg.Graph.RemoveVertexIf (fun v ->
              (not (isRepeatedOut cg v)) &&
               dom.IsDominatedBy(v, shadows v) || 
               domRev.IsDominatedBy(v, shadows v)) |> ignore
          cg.Graph.RemoveEdgeIf (fun e -> 
              let ies = cg.Graph.OutEdges e.Target
              match ies |> Seq.tryFind (fun ie -> ie.Target = e.Source) with 
  