anchor.diff:                      l.ExitWriteLock()
   
   
  +type MemoryManagerConfig =
  +    {
  +        malloc : int -> nativeint
  +        mfree : nativeint -> int -> unit
  +        mcopy : nativeint -> nativeint -> int -> unit
  +
  +    }
  +
   
   [<AllowNullLiteral>]
   type internal Block =
  
positive.code: 
  [<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
  module MemoryManager =
      
      let createHGlobal() = new MemoryManager(16, Marshal.AllocHGlobal, fun ptr _ -> Marshal.FreeHGlobal ptr)
      let createCoTaskMem() = new MemoryManager(16, Marshal.AllocCoTaskMem, fun ptr _ -> Marshal.FreeCoTaskMem ptr)
      let createExecutable() = new MemoryManager(16, ExecutableMemory.alloc, ExecutableMemory.free)
  
      let inline alloc (size : int) (m : MemoryManager) =
          m.Alloc size
  
negative.code: 
      member x.Dispose() =
          if ptr <> 0n then
              config.mfree ptr capacity
              ptr <- 0n
              capacity <- 0
              allocated <- 0
  