anchor.diff:          |> List.filter(fun g -> g.Attributes.Count = 0)
           |> List.collect(fun g -> g |> getDescendants "ProjectTypeGuids") 
           |> List.filter(fun pt -> pt.Attributes.Count = 0)
  -        |> List.collect(fun pt -> pt.InnerText.Split(';') |> List.ofArray)
  +        |> List.collect(fun pt -> pt.InnerText.Split ';' |> List.ofArray)
           |> List.distinct
           |> List.choose(fun guid -> match Guid.TryParse guid with | (true, g) -> Some g | _ -> None)
   
  
positive.code:             (fun node -> 
                  let sibling = node.NextSibling
                  tracefn "Removing 'Import' entry from %s for project %s" 
                      this.FileName 
                      (node |> getAttribute "Project" |> Option.get)
                  node.ParentNode.RemoveChild node |> ignore
                  match sibling with
                  | null -> ()
                  | sibling when sibling.Name.Equals("Target") ->
                      let deleteTarget = 
                          Utils.askYesNo
                              (sprintf "Do you want to delete Target named '%s' from %s ?" 
                                  (sibling |> getAttribute "Name" |> Option.get)
                                  this.FileName)
                      if deleteTarget then
                          sibling.ParentNode.RemoveChild sibling |> ignore
                  | _ -> ())
  
      member this.OutputType =
          seq {for outputType in this.Document |> getDescendants "OutputType" ->
                  match outputType.InnerText with
                  | "Exe"    -> ProjectOutputType.Exe
                  | "WinExe" -> ProjectOutputType.Exe
                  | _        -> ProjectOutputType.Library }
          |> Seq.head
  
      member this.GetTargetFrameworkIdentifier() =
          this.GetProperty "TargetFrameworkIdentifier"
  
      member this.GetTargetFrameworkProfile() =
          this.GetProperty "TargetFrameworkProfile"
  
      member this.GetTargetProfile() =
          match this.GetTargetFrameworkProfile() with
          | Some profile when profile = "Client" ->
              SinglePlatform(DotNetFramework(FrameworkVersion.V4_Client))
          | Some profile when String.IsNullOrWhiteSpace profile |> not ->
              KnownTargetProfiles.FindPortableProfile profile
          | _ ->
              let prefix =
                  match this.GetTargetFrameworkIdentifier() with
                  | None -> "net"
                  | Some x -> x
              let framework = this.GetProperty "TargetFrameworkVersion"
              let defaultResult = SinglePlatform(DotNetFramework(FrameworkVersion.V4))
              match framework with
              | None -> defaultResult
              | Some s ->
  
negative.code:                 if not parent.HasChildNodes then 
                      parent.ParentNode.RemoveChild parent |> ignore)
  
      let removeImportAndTargetEntries (packages : list<string * SemVerInfo> ) (project:ProjectFile) =
          let toDelete = 
              project.Document 
              |> getDescendants "Import"
              |> List.filter (fun node -> 
                  match node |> getAttribute "Project" with
  