class_docstr: Node in a tree that corresponds to previous interactions with
  a ``ConjectureData`` object according to some fixed test function.
  
  This is functionally a variant patricia trie.
  See https://en.wikipedia.org/wiki/Radix_tree for the general idea,
  but what this means in particular here is that we have a very deep
  but very lightly branching tree and rather than store this as a fully
  recursive structure we flatten prefixes and long branches into
  lists. This significantly compacts the storage requirements.
  
  A single ``TreeNode`` corresponds to a previously seen sequence
  of calls to ``ConjectureData`` which we have never seen branch,
  followed by a ``transition`` which describes what happens next.
docstr: Recalculates ``self.is_exhausted`` if necessary then returns
  it.
docstr_tok: ["Recalculates","``","self.is_exhausted","``","if","necessary","then","returns","it","."]
code: def check_exhausted(self):
      """Recalculates ``self.is_exhausted`` if necessary then returns
      it."""
      if (
          not self.is_exhausted
          and len(self.forced) == len(self.values)
          and self.transition is not None
      ):
          if isinstance(self.transition, (Conclusion, Killed)):
              self.is_exhausted = True
          elif (
              len(self.transition.children)
              == self.transition.max_children
          ):
              self.is_exhausted = all(
                  v.is_exhausted
                  for v in self.transition.children.values()
              )
      return self.is_exhausted
  
imports: from __future__ import absolute_import, division, print_function
  import attr
  from hypothesis.errors import Flaky, HypothesisException
  from hypothesis.internal.compat import hbytes, int_to_bytes
  from hypothesis.internal.conjecture.data import ConjectureData, DataObserver, Status, StopTest, bits_to_bytes
  from hypothesis.internal.conjecture.junkdrawer import IntList
label_desc: Use image node_id 4 for calling the TreeNode obj's underlying member method code with example usage: obj.check_exhausted() and returns: self