anchor.diff:  open Mono.Cecil
   open Serilog
   open System
  +open System.Collections.Generic
  +open System.Collections.Immutable
   open System.IO
   open System.Reflection
   open System.Runtime.CompilerServices
  
positive.code:     log.Debug("Creating AppDomain...")
      let ad = AppDomain.CreateDomain(sprintf "Farkle.Tools precompiler for %s" path)
      try
          for r in references do
              r |> Path.GetFullPath |> ad.Load |> ignore
          let theHeroicPrecompiler =
              ad.CreateInstanceAndUnwrap(
                  Assembly.GetExecutingAssembly().FullName,
  
negative.code:         let asm = Assembly.LoadFile path
          dynamicDiscoverAndPrecompile asm log
  
  let getAssemblyName (path: string) = AssemblyDefinition.ReadAssembly(path).Name.Name
  
  #if NET472
  let makeResolver references =
      let dict =
          references
          |> Seq.map (fun path -> KeyValuePair(getAssemblyName path, path))
          |> ImmutableDictionary.CreateRange
      ResolveEventHandler(fun _ e ->
          match e.Name with
          | "Farkle" -> null
          | name ->
              match dict.TryGetValue name with
              | true, path -> Assembly.LoadFile path
              | false, _ -> null)
  #else
  open System.Runtime.Loader
  
  type private FarkleAwareAssemblyLoadContext(path, references) =
      inherit AssemblyLoadContext(sprintf "Farkle.Tools precompiler for %s" path, true)
      let dict =
          references
          |> Seq.map (fun path -> KeyValuePair(getAssemblyName path, path))
          |> ImmutableDictionary.CreateRange
      override this.Load(name) =
          match name.Name with
          | "Farkle" -> typeof<DesigntimeFarkle>.Assembly
          | "FSharp.Core" -> typeof<FuncConvert>.Assembly
          | "mscorlib" | "System.Private.CoreLib" | "System.Runtime" -> null
          | name ->
              match dict.TryGetValue name with
              | true, path -> this.LoadFromAssemblyPath path
              | false, _ -> null
  
  let private ensureUnloaded (log: ILogger) (wr: WeakReference) =
      if wr.IsAlive then
  