anchor.diff:                      dllReferences = crackedFsproj.dllReferences @ paketDllRefs }
               (crackedFsproj.projectReferences, crackedFsproj::acc)
               ||> Seq.foldBack (fun projFile acc ->
  -                crackProjects acc projFile)
  +                crackProjects acc projFile None)
       let crackedFsprojs =
  -        crackProjects [] projFile
  +        crackProjects [] projFile (Some xmlDoc)
           |> List.distinctBy (fun x -> x.projectFile.ToLower())
       let sourceFiles =
           crackedFsprojs |> Seq.collect (fun x -> x.sourceFiles) |> Seq.toArray
  
positive.code:             // Duplicated items will be removed later
              crackedFsproj::acc
          | None ->
              let crackedFsproj = crackFsproj projFile
              let paketProjRefs, paketDllRefs =
                  getPaketRefs paketDir targetFramework projFile
                  |> partitionMap (function
  
negative.code:         | Choice1Of2 item -> item::list1, list2
          | Choice2Of2 item -> list1, item::list2)
  
  let getProjectOptionsFromFsproj (projFile: string) =
      let xmlDoc = XDocument.Load(projFile)
      let targetFramework =
          match tryGetTargetFramework xmlDoc with
          | Some framework ->
              let framework, version =
                  if framework.StartsWith("netcoreapp1") then "netstandard", "1.6"
                  elif framework.StartsWith("netcoreapp2") then "netstandard", "2.0"
                  else framework, ""
              { Framework = framework; Version = version }
          | None -> failwithf "Cannot find TargetFramework in %s" projFile
      let paketDir = tryFindPaketDirFromProject projFile
      checkFableCoreVersion paketDir projFile
      let rec crackProjects (acc: CrackedFsproj list) projFile xmlDoc =
          acc |> List.tryFind (fun x ->
              String.Equals(x.projectFile, projFile, StringComparison.OrdinalIgnoreCase))
          |> function
  