libsemigroups::CongruenceInterface:
- Member types:
  - ["This page contains information about the member types of the
     :cpp:any:`CongruenceInterface` class."]
  - class_index_type
  - non_trivial_classes_type
  - non_trivial_class_iterator
  - const_iterator
- Constructors:
  - ["This page contains information about the constructors for the
     :cpp:any:`CongruenceInterface` class."]
  - CongruenceInterface(congruence_kind)
  - CongruenceInterface(CongruenceInterface const&) = default
- Deleted constructors:
  - ["This page lists the deleted constructors of the
     :cpp:any:`CongruenceInterface` class."]
  - CongruenceInterface() = delete
  - CongruenceInterface(CongruenceInterface&&) = delete
  - operator=(CongruenceInterface const&) = delete
  - operator=(CongruenceInterface&&) = delete
- Initialization:
  - ["This page contains information about initialising the
     :cpp:any:`CongruenceInterface` class."]
  - set_number_of_generators(size_t)
  - number_of_generators() const noexcept
  - add_pair(std::initializer_list<size_t>, std::initializer_list<size_t>)
  - add_pair(word_type const&, word_type const&)
  - number_of_generating_pairs() const noexcept
- Handedness:
  - kind() const noexcept
- Iterators:
  - ["This page contains information about iterators for accessing certain
      attributes of the :cpp:any:`CongruenceInterface` class."]
  - cbegin_generating_pairs() const noexcept
  - cend_generating_pairs() const noexcept
  - cbegin_ntc()
  - cend_ntc()
- Words and class indices:
  - ["This page contains information about the member functions of
      the :cpp:any:`CongruenceInterface` class for converting a word in the
      generators to a class index and vice versa."]
  - word_to_class_index(word_type const&)
  - class_index_to_word(class_index_type)
- Numbers of classes, and comparisons:
  - ["This page contains information about the member functions of
      the :cpp:any:`CongruenceInterface` class for comparing words, checking
      membership, and counting the number of classes of several types."]
  - less(word_type const&, word_type const&)
  - const_contains(word_type const&, word_type const&) const
  - contains(word_type const&, word_type const&)
  - number_of_classes()
  - number_of_non_trivial_classes()
  - non_trivial_classes()
- Related semigroups:
  - ["This page contains information about the member functions of the
      :cpp:any:`CongruenceInterface` class for obtaining the parent or quotient
      semigroup represented as a :cpp:any:`FroidurePin` instance."]
  - quotient_froidure_pin()
  - has_quotient_froidure_pin() const noexcept
  - parent_froidure_pin() const
  - has_parent_froidure_pin() const noexcept
  - parent_fpsemigroup() const
  - has_parent_fpsemigroup() const noexcept
  - is_quotient_obviously_finite()
  - is_quotient_obviously_infinite()
- Member functions inherited from Runner:
  - ["This page contains a description of the member functions of the
     :cpp:any:`CongruenceInterface` class inherited from :cpp:any:`Runner`."]
  - dead() const noexcept
  - finished() const
  - started() const
  - stopped() const
  - timed_out() const
  - running() const noexcept
  - stopped_by_predicate() const
  - kill() noexcept
  - run()
  - run_for(std::chrono::nanoseconds)
  - run_for(TIntType)
  - run_until(T&&)
  - run_until(bool(*)())
  - report_every(TIntType)
  - report_every(std::chrono::nanoseconds)
  - report_every() const noexcept
  - report() const
  - report_why_we_stopped() const
  - running_for() const noexcept
  - running_until() const noexcept
