anchor.diff:                Sources = []
                 Packages = []
                 RemoteFiles = [] }
  +
  +        member this.CombineWith (other:DependenciesGroup) =
  +            { Name = this.Name
  +              Options = 
  +                { Redirects = this.Options.Redirects || other.Options.Redirects
  +                  Settings = this.Options.Settings + other.Options.Settings
  +                  Strict = this.Options.Strict || other.Options.Strict }
  +              Sources = this.Sources @ other.Sources |> List.distinct
  +              Packages = this.Packages @ other.Packages
  +              RemoteFiles = this.RemoteFiles @ other.RemoteFiles }
   
   type RequirementsGroup = {
       Name: GroupName
  
positive.code:             this.AddAdditionalPackage(groupName, packageName,version,installSettings)
  
      member this.Remove(groupName, packageName) =
          if this.HasPackage(groupName, packageName) then         
              tracefn "Removing %O from %s (group %O)" packageName fileName groupName
              this.RemovePackage(groupName, packageName)
          else
  
negative.code: 
      member __.Resolve(force, getSha1, getVersionF, getPackageDetailsF, groupsToResolve:Map<GroupName,RequirementsGroup>) =
          groupsToResolve
          |> Map.map (fun k group ->
              let rootDependencies =
                  match group.RootDependencies with
                  | None -> groups.[k].Packages
  