anchor.diff:  
   module internal Microsoft.FSharp.Compiler.CommandLineMain
   
  -open System.IO
  -open System.Text
  -open System.Reflection
   open Microsoft.FSharp.Compiler
   open Microsoft.FSharp.Compiler.AbstractIL.IL // runningOnMono 
  -open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library 
  +open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library
   open Microsoft.FSharp.Compiler.ErrorLogger
   open Microsoft.FSharp.Compiler.Driver
   open Internal.Utilities
  
positive.code: 
  type TypeInThisAssembly() = member x.Dummy = 1
  
  [<Dependency("FSharp.Compiler",LoadHint.Always)>] 
  do ()
  
  /// Collect the output from the stdout and stderr streams, character by character,
  /// recording the console color used along the way.
  type OutputCollector() = 
      let output = ResizeArray()
      let outWriter isOut = 
          { new TextWriter() with 
                member x.Write(c:char) = 
                    lock output (fun () -> 
                    output.Add (isOut, (try Some System.Console.ForegroundColor with _ -> None) ,c)) 
                member x.Encoding = Encoding.UTF8 }
      member x.GetTextAndClear() = lock output (fun () -> let res = output.ToArray() in output.Clear(); res)
  
  /// Implement the optional resident compilation service
  module FSharpResidentCompiler = 
  
      open System
      open System.Diagnostics
      open System.Runtime.Remoting.Channels
      open System.Runtime.Remoting
      open System.Runtime.Remoting.Lifetime
  
      /// The compilation server, which runs in the server process. Accessed by clients using .NET remoting.
      type FSharpCompilationServer(exiter:Exiter)  =
  
negative.code:     if not runningOnMono then Lib.UnmanagedProcessExecutionOptions.EnableHeapTerminationOnCorruption() (* SDL recommendation *)
  
      try 
          Driver.main(Array.append [| "fsc.exe" |] argv); 
      with e -> 
          errorRecovery e Microsoft.FSharp.Compiler.Range.range0; 
          1
  