code: def make_tuple(obj, cast=True):
      
      if isinstance(obj, tuple):
          return tuple(obj)
      elif is_lazy_iterable(obj):
          return tuple(obj)
      elif isinstance(obj, (list, set)) and cast:
          return tuple(obj)
      else:
          return (obj,)
docs: Converts an object *obj* to a tuple and returns it. Objects of types *list* and *set* are
      converted if *cast* is *True*. Otherwise, and for all other types, *obj* is put in a new tuple.