anchor.diff:  
       member ic.TryGetRecentTypeCheckResultsForFile(filename, options, ?source) = ic.TryGetRecentCheckResultsForFile(filename,options,?source=source)
   
  +    member ic.Compile(argv: string[]) =
  +        CompileHelpers.compileFromArgs (argv, None, None)
  +
  +    member ic.Compile (ast:ParsedInput list, assemblyName:string, outFile:string, dependencies:string list, ?pdbFile:string, ?executable:bool, ?noframework:bool) =
  +            let noframework = defaultArg noframework false
  +            CompileHelpers.compileFromAsts (ast, assemblyName, outFile, dependencies, noframework, pdbFile, executable, None, None)
  +
  +    member ic.CompileToDynamicAssembly (otherFlags: string[], execute: (TextWriter * TextWriter) option)  = 
  +        CompileHelpers.setOutputStreams execute
  +        
  +        // References used to capture the results of compilation
  +        let tcImportsRef = ref (None: TcImports option)
  +        let assemblyBuilderRef = ref None
  +        let tcImportsCapture = Some (fun tcImports -> tcImportsRef := Some tcImports)
  +
  +        // Function to generate and store the results of compilation 
  +        let debugInfo =  otherFlags |> Array.exists (fun arg -> arg = "-g" || arg = "--debug:+" || arg = "/debug:+")
  +        let dynamicAssemblyCreator = Some (CompileHelpers.dynamicAssemblyCreator (debugInfo, tcImportsRef, execute, assemblyBuilderRef))
  +
  +        // Perform the compilation, given the above capturing function.
  +        let errorsAndWarnings, result = CompileHelpers.compileFromArgs (otherFlags, tcImportsCapture, dynamicAssemblyCreator)
  +
  +        // Retrieve and return the results
  +        let assemblyOpt = 
  +            match assemblyBuilderRef.Value with 
  +            | None -> None
  +            | Some a ->  Some (a :> System.Reflection.Assembly)
  +
  +        errorsAndWarnings, result, assemblyOpt
  +
  +    member ic.CompileToDynamicAssembly (asts:ParsedInput list, assemblyName:string, dependencies:string list, execute: (TextWriter * TextWriter) option, ?debug:bool, ?noframework:bool) =
  +        CompileHelpers.setOutputStreams execute
  +
  +        // References used to capture the results of compilation
  +        let tcImportsRef = ref (None: TcImports option)
  +        let assemblyBuilderRef = ref None
  +        let tcImportsCapture = Some (fun tcImports -> tcImportsRef := Some tcImports)
  +
  +        let debugInfo = defaultArg debug false
  +        let noframework = defaultArg noframework false
  +        let location = Path.Combine(Path.GetTempPath(),"test"+string(hash assemblyName))
  +        try Directory.CreateDirectory(location) |> ignore with _ -> ()
  +
  +        let outFile = Path.Combine(location, assemblyName + ".dll")
  +
  +        // Function to generate and store the results of compilation 
  +        let dynamicAssemblyCreator = Some (CompileHelpers.dynamicAssemblyCreator (debugInfo, tcImportsRef, execute, assemblyBuilderRef))
  +
  +        // Perform the compilation, given the above capturing function.
  +        let errorsAndWarnings, result = 
  +            CompileHelpers.compileFromAsts (asts, assemblyName, outFile, dependencies, noframework, None, Some execute.IsSome, tcImportsCapture, dynamicAssemblyCreator)
  +
  +        // Retrieve and return the results
  +        let assemblyOpt = 
  +            match assemblyBuilderRef.Value with 
  +            | None -> None
  +            | Some a ->  Some (a :> System.Reflection.Assembly)
  +
  +        errorsAndWarnings, result, assemblyOpt
  +
       /// This function is called when the entire environment is known to have changed for reasons not encoded in the ProjectOptions of any project/compilation.
       /// For example, the type provider approvals file may have changed.
       member ic.InvalidateAll() =
  
positive.code:     let AreSubsumable3((fileName1:string,_,o1:FSharpProjectOptions),(fileName2:string,_,o2:FSharpProjectOptions)) =
          (fileName1 = fileName2)
          && FSharpProjectOptions.AreSubsumable(o1,o2)
          
  // There is only one instance of this type, held in FSharpChecker
  type BackgroundCompiler(projectCacheSize, keepAssemblyContents, keepAllBackgroundResolutions) as self =
  
negative.code: open Microsoft.FSharp.Compiler.AccessibilityLogic
  open Microsoft.FSharp.Compiler.Ast
  open Microsoft.FSharp.Compiler.CompileOps
  open Microsoft.FSharp.Compiler.Driver
  open Microsoft.FSharp.Compiler.ErrorLogger
  open Microsoft.FSharp.Compiler.Lib
  open Microsoft.FSharp.Compiler.MSBuildResolver
  