def check(self, values, namespace):
is_tuplish_type = (issubclass(self._cls, tg.Tuple) or<EOL>issubclass(type(values), self._cls))<EOL>if (not _is_sequence(values) or not is_tuplish_type or<EOL>len(values) != len(self._checks)):<EOL><INDENT>return False<EOL><DEDENT>for thischeck, thisvalue in zip(self._checks, values):<EOL><INDENT>if not thischeck(thisvalue, namespace):<EOL><INDENT>return False<EOL><DEDENT><DEDENT>return True<EOL>
specifying a plain tuple allows arguments that are tuples or lists;
        specifying a specialized (subclassed) tuple allows only that type;
        specifying a list allows only that list type.