docs: def available_state(self, state: State) -> Tuple[State, ...]:
          """ Return the state reachable from a given state. """
          result = []
          for gene in self.genes:
              result.extend(self.available_state_for_gene(gene, state))
          if len(result) > 1 and state in result:
              result.remove(state)
          return tuple(result)