anchor.diff:          match line.Trim()  with
           | String.RemovePrefix "group" _ as trimmed -> Some (Group (trimmed.Replace("group ","")))
           | _ -> None
  -    
  -    let parsePackage (sources,parent,name,version,rest:string) =
  +
  +    let parsePackage (sources,parent,name,version,isCliTool,rest:string) =
           let prereleases,optionsText =
               if rest.Contains ":" then
                   // boah that's reaaaally ugly, but keeps backwards compat
  
positive.code:           Sources = sources
            Settings = InstallSettings.Parse(optionsText).AdjustWithSpecialCases packageName
            VersionRequirement = versionRequirement 
            IsCliTool = false } 
  
      let parsePackageLine(sources,parent,line:string) =
          match line with 
          | Package(name,version,rest) -> parsePackage(sources,parent,name,version,rest)
          | _ -> failwithf "Not a package line: %s" line
  
      let private parseOptions (current  : DependenciesGroup) options =
  
negative.code:                     lineNo, { current with Caches = caches; Sources = sources }::other
                  | ParserOptions options ->
                      lineNo,{ current with Options = parseOptions current options} ::other
  
                  | Package(name,version,rest) ->
                      let package = parsePackage(current.Sources,DependenciesFile fileName,name,version,false,rest) 
                      if checkDuplicates && current.Packages |> List.exists (fun p -> p.Name = package.Name) then
                          traceWarnfn "Package %O is defined more than once in group %O of %s" package.Name current.Name fileName
                      
                      lineNo, { current with Packages = current.Packages @ [package] }::other
  
                  | CliTool(name,version,rest) ->
                      let package = parsePackage(current.Sources,DependenciesFile fileName,name,version,true,rest) 
                      if checkDuplicates && current.Packages |> List.exists (fun p -> p.Name = package.Name) then
                          traceWarnfn "Package %O is defined more than once in group %O of %s" package.Name current.Name fileName
                      
                      lineNo, { current with Packages = current.Packages @ [package] }::other
  
                  | SourceFile(origin, (owner,project, vr), path, authKey) ->
                      let remoteFile : UnresolvedSource = { 
                          Owner = owner
  