anchor.diff:                      let value = new AST(family, null)
                       astDictionary.Add(extension, value)
                       value
  -            
               result
   
           let create label (u : int64<vertex>) (index : int) (ast : ExtensionTree) = 
  
positive.code: 
          let findFamily prod (nodes : INode) extension : Family =
              let mutable result = None
              let res = ref <| null
              let exists = createdFamilies.[prod].TryGetValue(extension, res)
              if exists
              then 
  
negative.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 fam = handleIntermidiate curRight.tree (rule) extension
                      let resTree = findTree key fam 
                      if  key = finalExtension
                      then resultAST := Some resTree
                      pop !currentGSSNode !currentIndex resTree currentN.Value.extension
  