anchor.diff:      let builder = new CommandLineBuilder()
       let mutable args = []  // in reverse order
       let mutable srcs = []  // in reverse order
  -    let mutable alreadyCalledWithFilenames = false
       /// Return a list of the arguments (with no quoting for the cmd.exe shell)
       member x.CapturedArguments() =
  -        assert(not alreadyCalledWithFilenames)
           List.rev args
       /// Return a list of the sources (with no quoting for the cmd.exe shell)
       member x.CapturedFilenames() =
  -        assert(alreadyCalledWithFilenames)
           List.rev srcs
       /// Return a full command line (with quoting for the cmd.exe shell)
       override x.ToString() =
  
positive.code:             let s = tmp.ToString()
              if s <> String.Empty then
                  srcs <- tmp.ToString() :: srcs
          alreadyCalledWithFilenames <- true
  
      member x.AppendSwitchIfNotNull(switch:string, values:string array, sep:string) =
          builder.AppendSwitchIfNotNull(switch, values, sep)
  
negative.code: 
      override fsc.GenerateCommandLineCommands() =
          let builder = new FscCommandLineBuilder()
          if not (String.IsNullOrEmpty(dotnetFscCompilerPath)) then builder.AppendSwitch(dotnetFscCompilerPath)
          builder.ToString()
  
      override fsc.GenerateResponseFileCommands() =
          let builder = generateCommandLineBuilder ()
          builder.GetCapturedArguments() |> Seq.fold(fun acc f -> acc + Environment.NewLine + f) ""
  
      // expose this to internal components (for nunit testing)
      member internal fsc.InternalGenerateCommandLineCommands() =
  