anchor.diff:          | FileList of Files: Model list
           | ProjectReferencesList of Projects : Model list
           | Project of path: string * name: string * FileList: Model  * ProjectReferencesList : Model  * ReferenceList: Model
  +        | Folder of name : string * Files : Model list
           | File of path: string * name: string * projectPath : string
           | Reference of path: string * name: string * projectPath : string
           | ProjectReference of path: string * name: string * projectPath : string
  
positive.code:     let getProjectModel proj =
          let projects = Project.getLoaded ()
  
          let files = proj.Files |> List.map ( fun p -> File(p, path.basename p, proj.Project)) |> FileList
          let refs = proj.References |> List.map (fun p -> Reference(p, path.basename p, proj.Project)) |> ReferenceList
          let projs = proj.References |> List.choose (fun r -> projects |> Seq.tryFind (fun pr -> pr.Output = r)) |> List.map (fun p -> ProjectReference(p.Project, path.basename(p.Project, ".fsproj"), proj.Project))  |> ProjectReferencesList
          let name = path.basename(proj.Project, ".fsproj")
  
negative.code:             | ReferenceList refs -> refs
              | ProjectReferencesList refs -> refs
              | FileList files -> files
              | Folder (name,files) -> files
              | File _ -> []
              | Reference _ -> []
              | ProjectReference _ -> []
  