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.UInt32Array    : uint32[]  = x.Read(0, block.Size / 4)
      member x.UInt64Array    : uint64[]  = x.Read(0, block.Size / 8)
  
  and MemoryManager(capacity : int, config : MemoryManagerConfig) as this =
      let mutable capacity = capacity
      let mutable allocated = 0
  
      let mutable ptr = config.malloc capacity
      let freeList = FreeList<int, Block>()
      let l = obj()
      let pointerLock = new ReaderWriterLockSlim()
  