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