anchor.diff:          let document = XMLDoc documentContent // we create a copy and work immutable
           let node = 
               getCompileNodes document 
  -            |> List.filter (fun node -> node.Attributes.["Include"].InnerText = fileName) 
  +            |> List.filter (fun node -> getFileAttribute node = fileName) 
               |> Seq.last  // we remove the last one to make easier to remove duplicates
   
           node.ParentNode.RemoveChild node |> ignore
  
positive.code:         new ProjectFile(projectFileName,document.OuterXml)
  
      /// All files which are in "Compile" sections
      member x.Files = files
  
      /// Finds duplicate files which are in "Compile" sections
      member x.FindDuplicateFiles() = 
          [let d = System.Collections.Generic.Dictionary()
           for i in x.Files do
              match d.TryGetValue(i) with
              | false,_    -> d.[i] <- false         // first observance
  
negative.code:     let getCompileNodes (document:XmlDocument) =         
          [for node in document.SelectNodes(compileNodesXPath,nsmgr) -> node]
  
      let getFileAttribute (node:XmlNode) = node.Attributes.["Include"].InnerText
  
      /// Read a Project from a FileName
      static member FromFile(projectFileName) = new ProjectFile(projectFileName,ReadFileAsString projectFileName)
  
      /// Saves the project file
      member x.Save(?fileName) = document.Save(defaultArg fileName projectFileName)
  
      /// Add a file to the Compile nodes
      member x.AddFile fileName =        
  