code: def check(self, values, namespace):
          
          is_tuplish_type = (issubclass(self._cls, tg.Tuple) or
                             issubclass(type(values), self._cls))
          if (not _is_sequence(values) or not is_tuplish_type or
                  len(values) != len(self._checks)):
              return False
          for thischeck, thisvalue in zip(self._checks, values):
              if not thischeck(thisvalue, namespace):
                  return False
          return True
docs: 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.