anchor.diff:              contains
   
           let addContext label (index : int) (node : Vertex) (ast : obj) =
  -            if index <= inputLength + 1 && index >= 0 
  -            then
  -                if not <| containsContext index label node ast
  -                then
  -                    let cntxt = new Context(index, label, node, ast)
  -                    setU.[index].Add (new PreviousContexts(label, node, ast))
  -                    setR.Enqueue(cntxt)  
  +            if index <= inputLength + 1 && index >= 0 && not <| containsContext index label node ast
  +            then
  +                let cntxt = new Context(index, label, node, ast)
  +                setU.[index].Add (new PreviousContexts(label, node, ast))
  +                setR.Enqueue(cntxt)  
           
           let getNodeP label (left : obj) (right : obj) =      
               let rExt =
  
positive.code:         let createdFamilies = Array.init parser.rulesCount (fun _ -> new Dictionary<Int64, Microsoft.FSharp.Collections.ResizeArray<Family>>())  
  
          let terminalNodes = new BlockResizeArray<Nodes>()
          let finalExtension = packToInt64 0 inputLength
          
          let findFamily prod (nodes : Nodes) extension : Family =
              let mutable result = None
  
negative.code:                     getLowBits n.extension
                  | :? AST as a -> getLowBits a.extension 
                  | _ -> failwith "Unexpected type."
              let extension = pack2ToInt64 l r
              let nodes = new Nodes(result, extension)
              let family = findFamily prod nodes extension
              family, extension
  