anchor.diff:  
           let findFamily prod (nodes : INode) extension : Family =
               let mutable result = None
  -            let res = ref <| null
  +            let res = ref null
               let exists = createdFamilies.[prod].TryGetValue(extension, res)
               if exists
               then 
  
positive.code:                     let curRight =  !currentN
                      let t1 = getLeftExtension curRight.extension
                      let t2 = getRightExtension curRight.extension
                     // let extension = curRight.extension
                      let key = pack3ToInt64 rule (getLeftExtension curRight.extension) (getRightExtension curRight.extension)
                      let resTree = handleIntermidiate curRight.tree (rule) key
                      let resTree = findTree rule key resTree
                      if  key = finalExtension
                      then resultAST := Some resTree
                      pop !currentGSSNode !currentIndex resTree currentN.Value.extension
  
negative.code:             let edges = gss.[getIndex2Vertex b].[getIndex1Vertex b].OutEdges
              edges.first <> Unchecked.defaultof<_> && (edges.first.Dest = e || (edges.other <> null && edges.other |> Array.exists (fun edge ->  edge.Dest = e)))
  
          let findTree extension (family : Family) =            
              let result = 
                  if astDictionary.ContainsKey extension
                  then
  