class_docstr: Builder that checks all public symbols are included.
code: def finish(self) -> None:
      documented_objects = frozenset(
          self.env.domaindata["py"]["objects"]
      )
      undocumented_objects = haiku_public_symbols() - documented_objects
      if undocumented_objects:
          # Remove symbols that appear to have moved out of experimental.
          for obj in tuple(undocumented_objects):
              if (
                  obj.replace("haiku.experimental", "haiku")
                  in documented_objects
              ):
                  undocumented_objects.remove(obj)
      if undocumented_objects:
          undocumented_objects = tuple(sorted(undocumented_objects))
          raise errors.SphinxError(
              "All public symbols must be included in our documentation, did you "
              "forget to add an entry to `api.rst`?\n"
              f"Undocumented symbols: {undocumented_objects}"
          )
  
file_path: dm-haiku/docs/ext/coverage_check.py
imports: from collections.abc import Mapping
  from typing import Any
  import haiku
  from haiku._src import test_utils
  from sphinx import application
  from sphinx import builders
  from sphinx import errors
label_desc: Use image node_id 3 for calling the HaikuCoverageCheck obj's underlying member method code with example usage: obj.finish() without return types