code: func NewMap(opts MapOptions) *Map {
  	var (
  		copyFn     CopyFn
  		finalizeFn FinalizeFn
  	)
  	if pool := opts.KeyCopyPool; pool == nil {
  		copyFn = func(k []byte) []byte {
  			return append([]byte(nil), k...)
  		}
  	} else {
  		copyFn = func(k []byte) []byte {
  			keyLen := len(k)
  			pooled := pool.Get(keyLen)[:keyLen]
  			copy(pooled, k)
  			return pooled
  		}
  		finalizeFn = func(k []byte) {
  			pool.Put(k)
  		}
  	}
  	return mapAlloc(mapOptions{
  		hash: func(k []byte) MapHash {
  			return MapHash(xxhash.Sum64(k))
  		},
  		equals:      bytes.Equal,
  		copy:        copyFn,
  		finalize:    finalizeFn,
  		initialSize: opts.InitialSize,
  	})
  }
docs: // NewMap returns a new byte keyed map.