code: def to_serializable_repr(x):
      
      t = type(x)
      if isinstance(x, list):
          return list_to_serializable_repr(x)
      elif t in (set, tuple):
          return {
              "__class__": class_to_serializable_representation(t),
              "__value__": list_to_serializable_repr(x)
          }
      elif isinstance(x, dict):
          return dict_to_serializable_repr(x)
      elif isinstance(x, (FunctionType, BuiltinFunctionType)):
          return function_to_serializable_representation(x)
      elif type(x) is type:
          return class_to_serializable_representation(x)
      else:
          state_dictionary = to_serializable_repr(to_dict(x))
          state_dictionary["__class__"] = class_to_serializable_representation(
              x.__class__)
          return state_dictionary
docs: Convert an instance of Serializable or a primitive collection containing
      such instances into serializable types.