anchor.diff:          let oldCapacity = capacity
           let newCapacity = Fun.NextPowerOfTwo(capacity + additional)
           writePointer (fun () ->
  -            let n = malloc newCapacity
  -            Marshal.Copy(ptr, n, oldCapacity)
  -
  -            mfree ptr capacity
  +            let n = config.malloc newCapacity
  +            config.mcopy ptr n oldCapacity
  +
  +            config.mfree ptr capacity
               ptr <- n
               capacity <- newCapacity
           )
  
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()
  