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:         if wr.IsAlive then
              // Not getting unloaded does not affect weaving an assembly.
              // This is great news; a warning is not necessary.
              log.Debug("The assembly context was not collected after {GCTries} attempts! \
  Writing to the assembly might fail.", 10 - i)
          else
              log.Debug("Assembly context unloaded after {GCTries} tries.", 10 - i)
  #endif
  
negative.code:         Runtime.Remoting.RemotingServices.Disconnect logw |> ignore
          AppDomain.Unload(ad)
      #else
      let alc = FarkleAwareAssemblyLoadContext(path, references, log)
      try
          let asm = alc.TheAssembly
          if asm.GetName().Name = typeof<DesigntimeFarkle>.Assembly.GetName().Name then
              log.Error("Cannot precompile an assembly named 'Farkle'")
              []
          else
              dynamicDiscoverAndPrecompile asm logw
          , WeakReference(alc)
      finally
          alc.Unload()
          log.Verbose("The context is at generation {Generation}", GC.GetGeneration(alc))
  