def min_max(values):
    """ Returns a tuple with the min and max values contained in the iterable ```values```

    :param values: an iterable with comparable values
    :return: a tuple with the smallest and largest values (in this order)
    """
    min_ = None
    max_ = None
    for val in values:
        # Need to take care of the fact that None < (anything else)
        if not min_:
            min_ = val
        if val < min_:
            min_ = val
        if val > max_:
            max_ = val
    return min_, max_