def first_field(self):
        """ Returns the first :class:`Field` in the `Sequence` or ``None``
        for an empty `Sequence`.
        """
        for name, item in enumerate(self):
            # Container
            if is_container(item):
                field = item.first_field()
                # Container is not empty
                if field is not None:
                    return field
            # Field
            elif is_field(item):
                return item
            else:
                raise MemberTypeError(self, item, name)
        return None