anchor.diff:  open MonoDevelop.Projects
   open MonoDevelop.Ide
   open MonoDevelop.Ide.Gui
  +open MonoDevelop.Ide.Gui.Pads.ProjectPad
   
   open System.Collections.Generic
   open System.Linq
  
positive.code: type FSharpProjectFileNodeExtension() =
    inherit NodeBuilderExtension()
  
    member x.Refresh() =
       x.Context.GetTreeBuilder().UpdateAll()
  
    override x.CanBuildNode(dataType:Type) =
      // Extend any file belonging to a F# project
      typedefof<ProjectFile>.IsAssignableFrom (dataType)
  
    override x.CompareObjects(thisNode:ITreeNavigator, otherNode:ITreeNavigator) : int =
      match (otherNode.DataItem, thisNode.DataItem) with
  
negative.code:     //reload project causing the node tree up refresh with new ordering
      use monitor = IdeApp.Workbench.ProgressMonitors.GetProjectLoadProgressMonitor(true)
      monitor.BeginTask("Reloading Project", 1)
      let file = currentNode.DataItem :?> ProjectFile
      file.Project.ParentFolder.ReloadItem(monitor, file.Project) |> ignore
      monitor.Step (1)
      monitor.EndTask()
  
    let moveNodes (currentNode: ITreeNavigator) (movingNode:ProjectFile) position =
          let moveToNode = currentNode.DataItem :?> ProjectFile
  
          let projectFile = movingNode.Project.FileName.ToString()
  
          ///partially apply the default namespace of msbuild to xs
  