docs: def _exec_check(self, check: FontbakeryCallable, args: Dict[str, Any]):
      """ Yields check sub results.
  
      Each check result is a tuple of: (<Status>, mixed message)
      `status`: must be an instance of Status.
            If one of the `status` entries in one of the results
            is FAIL, the whole check is considered failed.
            WARN is most likely a PASS in a non strict mode and a
            FAIL in a strict mode.
      `message`:
        * If it is an `Exception` type we expect `status`
          not to be PASS
        * If it is a `string` it's a description of what passed
          or failed.
        * we'll think of an AdvancedMessageType as well, so that
          we can connect the check result with more in depth
          knowledge from the check definition.
      """
      try:
        # A check can be either a normal function that returns one Status or a
        # generator that yields one or more. The latter will return a generator
        # object that we can detect with types.GeneratorType.
        result = check(**args)  # Might raise.
  
        if isinstance(result, types.GeneratorType):
          # Iterate over sub-results one-by-one, list(result) would abort on
          # encountering the first exception.
          for sub_result in result:  # Might raise.
            yield self._check_result(sub_result)
          return  # Do not fall through to rest of method.
      except Exception as e:
        error = FailedCheckError(e)
        result = (ERROR, error)
  
      yield self._check_result(result)