anchor.diff:      static member singleton(framework,libs) =
           { Frameworks = Map.add framework libs Map.empty; Fallbacks = InstallFiles.empty }
   
  -    member this.ReplaceFramework(framework,f1,f2) =
  +    member this.ReplaceFramework(framework,f1,f2,f3) =
           { this with Frameworks = 
                           match Map.tryFind framework this.Frameworks with
  -                        | Some files -> Map.add framework (f1 files) this.Frameworks
  +                        | Some files when Set.isEmpty files.References -> Map.add framework (f1()) this.Frameworks
  +                        | Some files -> Map.add framework (f2 files) this.Frameworks
                           | None -> 
  -                            match f2() with
  +                            match f3() with
                               | Some files -> Map.add framework files this.Frameworks
                               | None -> this.Frameworks }
   
  
positive.code:             (fun group -> 
                  group.ReplaceFramework(
                      framework,
                      (fun files -> files.AddReference lib),
                      (fun _ -> Some (InstallFiles.singleton lib)))),
              (fun _ -> Some(FrameworkGroup.singleton(framework,InstallFiles.singleton lib))))
  
negative.code:             (fun group ->
                  group.ReplaceFramework(
                      framework,
                      (fun _ -> InstallFiles.empty.AddFrameworkAssemblyReference assemblyName),
                      (fun files -> files.AddFrameworkAssemblyReference assemblyName),
                      (fun _ -> Some (InstallFiles.empty.AddFrameworkAssemblyReference assemblyName)))),
              (fun _ -> None))
  