def check(self, value, namespace):
        """
        Attribute _field_types is a dict from field name to type.
        """
        if (not issubclass(type(value), self._cls) or
            len(value) != len(self._cls._fields)):
            return False
        for i, check in enumerate(self._checks):
            if not check(value[i], namespace):
                return False
        return True