code: def test_preserve_header(serializers):
      """
      Test that a serialization family doesn't overwrite the headers
      of the underlying registered dumps/loads functions.
      """
  
      class MyObj:
          pass
  
      @cuda_serialize.register(MyObj)
      @dask_serialize.register(MyObj)
      def _(x):
          return {}, []
  
      @cuda_deserialize.register(MyObj)
      @dask_deserialize.register(MyObj)
      def _(header, frames):
          assert header == {}
          assert frames == []
          return MyObj()
  
      header, frames = serialize(MyObj(), serializers=serializers)
      o = deserialize(header, frames)
      assert isinstance(o, MyObj)
  
imports: from __future__ import annotations
  import sys
  import pytest
  from dask.sizeof import sizeof
  from distributed.compatibility import WINDOWS
  from distributed.protocol import dumps, loads, msgpack, to_serialize
  from distributed.protocol.cuda import cuda_deserialize, cuda_serialize
  from distributed.protocol.serialize import Pickled, Serialize, Serialized, ToPickle, dask_deserialize, dask_serialize, deserialize, serialize
  from distributed.utils import nbytes
  from distributed.utils_test import captured_logger
label_desc: Use image node_id 10 for calling a global function with example usage: test_preserve_header(serializers) and returns: dict,  list, MyObj