code: async def tuple(self, elem=None, elem_type=None, params=None):
          
          version = await self.version(elem_type, params, elem=elem)
          if self.is_tracked():
              return self.get_tracked()
  
          if hasattr(elem_type, 'boost_serialize'):
              container = elem_type() if elem is None else elem
              self.pop_track()
              return await container.boost_serialize(self, elem=elem, elem_type=elem_type, params=params, version=version)
  
          if self.writing:
              self.pop_track()
              return await self.dump_tuple(elem, elem_type, params)
          else:
              obj = await self.load_tuple(elem_type, params=params, elem=elem)
              return self.track_obj(obj)
docs: Loads/dumps tuple
          :return: