anchor.diff:      let OPEN_EXISTING   = 0x0003
       let OPEN_ALWAYS  = 0x0004
   
  -let derefByte (p:nativeint) = 
  -    NativePtr.read (NativePtr.ofNativeInt<byte> p) 
  -
   type MemoryMappedFile(hMap: MemoryMapping.HANDLE, start:nativeint) =
       inherit BinaryFile()
   
  
positive.code:         start + nativeint i
  
      override m.ReadByte i = 
          derefByte (m.Addr i)
  
      override m.ReadBytes i len = 
          let res = Bytes.zeroCreate len
  
negative.code:         ignore(MemoryMapping.CloseHandle hMap)
  
      override m.CountUtf8String i = 
          let start = m.Addr i
          let mutable p = start 
          while Marshal.ReadByte(p) <> 0uy do
              p <- p + 1n
          int (p - start) 
  
      override m.ReadUTF8String i = 
          let n = m.CountUtf8String i
          System.Text.Encoding.UTF8.GetString(NativePtr.ofNativeInt (m.Addr i), 0, n)
  //#if FX_RESHAPED_REFLECTION
  //        System.Text.Encoding.UTF8.GetString(NativePtr.ofNativeInt (m.Addr i), n)
  //#else
  //        new System.String(NativePtr.ofNativeInt (m.Addr i), 0, n, System.Text.Encoding.UTF8)
  //#endif
  
  
  //---------------------------------------------------------------------
  