anchor.diff:  
       createEpsNodesAndPtr()
       run 0
  -    getResult()
  -
  -    +    getResult()
positive.code:     let setN = new HashSet<int>()
      let setW = new HashSet<int<ptr>>()
      let reductions = new Dictionary<int<ptr> * int, int>()
      setP.Add (0<vertex>, new ResizeArray<_>())
      pointers.Add []
  
  
negative.code:         let family = new Family(prod, new Nodes(nodes))
          let nonTermNodeNum = findSppfNode checkNode
          match nonTermNodeNum with
          | Some i ->
              if not (nonTermChildren.[i].Contains children)
              then 
                  addFamily sppfNodes.[i] family
                  nonTermChildren.[i].Add children
              i
          | None -> 
              let newNodeNum = addNode (new AST(family, [||], pos))
              nonTermChildren.Add (newNodeNum, new ResizeArray<_>([children]))
              newNodeNum
                   
      let getPointer nodes set =        
          let pointerNum = set |> Seq.tryFind (fun i -> pointers.[int i] = nodes)
          match pointerNum with
          | Some i -> i
  