anchor.diff:      let graph = ImmutableDDGFuncs.create(finalNodeId, InnerNode(finalNodeInfo))
       let cfgNode = astCfgMap.[varRef]
       let initState = { Graph = graph; Provider = provider; AstCfgMap = astCfgMap }
  -    let res = build cfgNode varName initState
  -    res.Graph+    let resState = build cfgNode varName initState
  +    let root = RootNode
  +    let rootId = resState.Provider.NextId
  +    ImmutableDDGFuncs.foldPreroots resState.Graph rootId root
positive.code:     {   Graph: AdjacencyGraph<int, Edge<int>>
          NodeIdInfoDict: Dictionary<int, DDNode>
          ConnectionNode: int
          FinalNode: int }
  
  module ImmutableDDGFuncs =
      // exception messages
  
negative.code:         AstCfgMap: Dictionary<ITreeNode, IControlFlowElement> }
  
  let rec build (cfgNode: IControlFlowElement) (varName: string) (state: BuildState) =
      let addNodeUsingFun treeNode label addFunc (state: BuildState) =
          let nodeId, provider' = NodeIdProviderFuncs.getId state.Provider treeNode
          let nodeInfo = { Label = label; AstElem = treeNode }
          let graph' = addFunc state.Graph nodeId (InnerNode(nodeInfo))
          nodeId, {state with Graph = graph'; Provider = provider'}
  
      let addNode treeNode label (state: BuildState) =
          let addFun = ImmutableDDGFuncs.addNodeAndEdge
          addNodeUsingFun treeNode label addFun state
  
      let addPreroot treeNode label (state: BuildState) =
          let addFun = ImmutableDDGFuncs.addPrerootAndEdge
          addNodeUsingFun treeNode label addFun state
  
      let setGraphConnectionNode nodeId (state: BuildState) =
          let graph' = { state.Graph with ConnectionNode = nodeId }
  