async def health_check(cls) -> Iterator[HealthCheckFail]:
        """
        Perform checks of the state itself. So far:

        - For each method of the class, check for the presence of a
          health_check() method. If the method is present then call it. This is
          used to allow the context decorator to make some checks on the
          structure of the class.
        """

        for k, v in cls.__dict__.items():
            if hasattr(v, 'health_check') and callable(v.health_check):
                async for check in v.health_check(cls):
                    yield check