def __new__(cls, *items, smart=False):
    if (not all(((is_integer(i) or isinstance(i, Basic)) for i in items))):
        raise TypeError('Illegal Vector element type')
    obj = super(Vector, cls).__new__(cls, items)
    obj.smart = smart
    return obj
def __new__(cls, *items, smart=False):
    if (not all(((is_integer(i) or isinstance(i, Basic)) for i in items))):
        raise TypeError('Illegal Vector element type')
    obj = super(Vector, cls).__new__(cls, items)
    obj.smart = smart
    return obj