<?xml version="1.0" encoding="UTF-8"?>
<doxygenlayout version="1.0">
  <!-- Generated by doxygen 1.9.8 -->
  <!-- Manually edited -->

  <!-- Navigation index tabs for HTML output -->
  <navindex>
    <tab type="mainpage" visible="yes" title="" />
    <tab type="user" visible="yes" url="_HEADING_" title="Installation and Changelog" />
    <tab type="user" visible="yes" url="@ref md_install" title="Install" />
    <tab type="user" visible="yes" url="@ref md_changelog-v3" title="changelog - version 3" />
    <tab type="user" visible="yes" url="@ref md_changelog-v2" title="changelog - version 2" />
    <tab type="user" visible="yes" url="@ref md_changelog-v1" title="changelog - version 1" />
    <tab type="user" visible="yes" url="_HEADING_" title="Data structures" />
    <tab type="usergroup" visible="yes" url="@ref adapters_group" title="Adapters">
      <tab type="usergroup" visible="yes" url="[none]" title="No default implementation">
        <tab type="user" visible="yes" url="@ref libsemigroups::Complexity" title="Complexity" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Degree" title="Degree" />
        <tab type="user" visible="yes" url="@ref libsemigroups::ImageLeftAction"
          title="ImageLeftAction" />
        <tab type="user" visible="yes" url="@ref libsemigroups::ImageRightAction"
          title="ImageRightAction" />
        <tab type="user" visible="yes" url="@ref libsemigroups::IncreaseDegree"
          title="IncreaseDegree" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Inverse" title="Inverse" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Lambda" title="Lambda" />
        <tab type="user" visible="yes" url="@ref libsemigroups::LambdaValue" title="LambdaValue" />
        <tab type="user" visible="yes" url="@ref libsemigroups::One" title="One" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Product" title="Product" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Rho" title="Rho" />
        <tab type="user" visible="yes" url="@ref libsemigroups::RhoValue" title="RhoValue" />
      </tab>
      <tab type="usergroup" visible="yes" url="[none]" title="Default implementation">
        <tab type="user" visible="yes" url="@ref libsemigroups::EqualTo" title="EqualTo" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Hash" title="Hash" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Less" title="Less" />
        <tab type="user" visible="yes" url="@ref libsemigroups::OnTuples" title="OnTuples" />
        <tab type="user" visible="yes" url="@ref libsemigroups::OnSets" title="OnSets" />
        <tab type="user" visible="yes" url="@ref libsemigroups::RankState" title="RankState" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Swap" title="Swap" />
      </tab>
      <tab type="usergroup" visible="yes" url="@ref adapters_bmat_group" title="Adapters for BMat">
        <tab type="user" visible="yes" url="@ref libsemigroups::ImageLeftAction<Mat, Container>"
          title="ImageLeftAction" />
        <tab type="user" visible="yes" url="@ref libsemigroups::ImageRightAction<Mat,BitSet< N>>"
          title="ImageRightAction (BitSet)" />
        <tab type="user" visible="yes" url="@ref libsemigroups::ImageRightAction<Mat,Container>"
          title="ImageRightAction (Container)" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Lambda<Mat,Container>"
          title="Lambda" />
        <tab type="user" visible="yes" url="@ref libsemigroups::LambdaValue<Mat>"
          title="LambdaValue" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Rank<Mat,RankState<Mat>>"
          title="Rank" />
        <tab type="user" visible="yes" url="@ref libsemigroups::RankState<Mat>" title="RankState" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Rho<Mat,Container>" title="Rho" />
        <tab type="user" visible="yes" url="@ref libsemigroups::RhoValue<Mat>" title="RhoValue" />
      </tab>
      <tab type="usergroup" visible="yes" url="@ref adapters_bmat8_group" title="Adapters for BMat8">
        <tab type="user" visible="yes" url="@ref libsemigroups::Complexity<BMat8>"
          title="Complexity" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Degree<BMat8>" title="Degree" />
        <tab type="user" visible="yes" url="@ref libsemigroups::ImageLeftAction<BMat8,BMat8>"
          title="ImageLeftAction" />
        <tab type="user" visible="yes" url="@ref libsemigroups::ImageRightAction<BMat8,BMat8>"
          title="ImageRightAction" />
        <tab type="user" visible="yes" url="@ref libsemigroups::IncreaseDegree<BMat8>"
          title="IncreaseDegree" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Inverse<BMat8>" title="Inverse" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Lambda<BMat8,BMat8>" title="Lambda" />
        <tab type="user" visible="yes" url="@ref libsemigroups::LambdaValue<BMat8>"
          title="LambdaValue" />
        <tab type="user" visible="yes" url="@ref libsemigroups::One<BMat8>" title="One" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Product<BMat8>" title="Product" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Rank<BMat8>" title="Rank" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Rho<BMat8,BMat8>" title="Rho" />
        <tab type="user" visible="yes" url="@ref libsemigroups::RhoValue<BMat8>" title="RhoValue" />
      </tab>
      <tab type="usergroup" visible="yes" url="@ref adapters_matrix_group"
        title="Adapters for other matrices">
        <tab type="user" visible="yes"
          url="@ref libsemigroups::Complexity<Mat,std::enable_if_t<IsMatrix<Mat>>>"
          title="Complexity" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::Degree<Mat,std::enable_if_t<IsMatrix<Mat>>>" title="Degree" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::Hash<Mat,std::enable_if_t<IsMatrix<Mat>>>" title="Hash" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::IncreaseDegree<Mat,std::enable_if_t<IsMatrix<Mat>>>"
          title="IncreaseDegree" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::One<Mat,std::enable_if_t<IsMatrix<Mat>>>" title="One" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::Product<Mat,std::enable_if_t<IsMatrix<Mat>>>" title="Product" />
      </tab>
      <tab type="usergroup" visible="yes" url="@ref adapters_hpcombi_group"
        title="Adapters for HPCombi">
        <tab type="user" visible="yes" url="@ref libsemigroups::Complexity<HPCombi::BMat8>"
          title="Complexity (BMat8)" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::Complexity<TPTransf16Subclass,std::enable_if_t<std::is_base_of_v<HPCombi::PTransf16,TPTransf16Subclass>>>"
          title="Complexity (PTransf16)" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Degree<HPCombi::BMat8>"
          title="Degree (BMat8)" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::Degree<TPTransf16Subclass,std::enable_if_t<std::is_base_of_v<HPCombi::PTransf16,TPTransf16Subclass>>>"
          title="Degree (PTransf16)" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::ImageLeftAction<HPCombi::BMat8,HPCombi::BMat8>"
          title="ImageLeftAction (BMat8)" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::ImageLeftAction<HPCombi::PPerm16,HPCombi::PPerm16>"
          title="ImageLeftAction (PPerm16)" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::ImageLeftAction<HPCombi::Transf16,HPCombi::Vect16>"
          title="ImageLeftAction (Transf16)" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::ImageRightAction<HPCombi::BMat8,HPCombi::BMat8>"
          title="ImageRightAction (BMat8)" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::ImageRightAction<HPCombi::Perm16,TIntType,std::enable_if_t<std::is_integral_v<TIntType>>>"
          title="ImageRightAction (Perm16)" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::ImageRightAction<HPCombi::PPerm16,HPCombi::PPerm16>"
          title="ImageRightAction (PPerm16)" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::ImageRightAction<HPCombi::Transf16,HPCombi::PTransf16>"
          title="ImageRightAction (Transf16)" />
        <tab type="user" visible="yes" url="@ref libsemigroups::IncreaseDegree<HPCombi::BMat8>"
          title="IncreaseDegree" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Inverse<HPCombi::BMat8>"
          title="Inverse (BMat8)" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Inverse<HPCombi::Perm16>"
          title="Inverse (Perm16)" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::Lambda<HPCombi::BMat8,HPCombi::BMat8>" title="Lambda (BMat8)" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::Lambda<HPCombi::PPerm16,HPCombi::PPerm16>"
          title="Lambda (PPerm16)" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::Lambda<HPCombi::Transf16,HPCombi::PTransf16>"
          title="Lambda (Transf16)" />
        <tab type="user" visible="yes" url="@ref libsemigroups::LambdaValue<HPCombi::BMat8>"
          title="LambdaValue (BMat8)" />
        <tab type="user" visible="yes" url="@ref libsemigroups::LambdaValue<HPCombi::PPerm16>"
          title="LambdaValue (PPerm16)" />
        <tab type="user" visible="yes" url="@ref libsemigroups::LambdaValue<HPCombi::Transf16>"
          title="LambdaValue (Transf16)" />
        <tab type="user" visible="yes" url="@ref libsemigroups::One<HPCombi::BMat8>"
          title="One (BMat8)" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::One<TPTransf16Subclass,std::enable_if_t<std::is_base_of_v<HPCombi::PTransf16,TPTransf16Subclass>>>"
          title="One (PTransf16)" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Product<HPCombi::BMat8>"
          title="Product (BMat8)" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::Product<TPTransf16Subclass,std::enable_if_t<std::is_base_of_v<HPCombi::PTransf16,TPTransf16Subclass>>>"
          title="Product (PTransf16)" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Rank<HPCombi::BMat8>"
          title="Rank (BMat8)" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::Rank<T,std::enable_if_t<std::is_base_of_v<HPCombi::PTransf16,T>,RankState<T>>>"
          title="Rank (PTransf16)" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Rho<HPCombi::BMat8,HPCombi::BMat8>"
          title="Rho (BMat8)" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::Rho<HPCombi::PPerm16,HPCombi::PPerm16>" title="Rho (PPerm16)" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::Rho<HPCombi::Transf16,HPCombi::Vect16>" title="Rho (Transf16)" />
        <tab type="user" visible="yes" url="@ref libsemigroups::RhoValue<HPCombi::BMat8>"
          title="RhoValue (BMat8)" />
        <tab type="user" visible="yes" url="@ref libsemigroups::RhoValue<HPCombi::PPerm16>"
          title="RhoValue (PPerm16)" />
        <tab type="user" visible="yes" url="@ref libsemigroups::RhoValue<HPCombi::Transf16>"
          title="RhoValue (Transf16)" />
        <tab type="user" visible="yes"
          url="@ref libsemigroups::Swap<TPTransf16Subclass,std::enable_if_t<std::is_base_of_v<HPCombi::PTransf16,TPTransf16Subclass>>>"
          title="Swap" />
      </tab>
      <tab type="usergroup" visible="yes" url="@ref adapters_pbr_group" title="Adapters for PBR">
        <tab type="user" visible="yes" url="@ref libsemigroups::Complexity<PBR>" title="Complexity" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Degree<PBR>" title="Degree" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Hash<PBR>" title="Hash" />
        <tab type="user" visible="yes" url="@ref libsemigroups::IncreaseDegree<PBR>"
          title="IncreaseDegree" />
        <tab type="user" visible="yes" url="@ref libsemigroups::One<PBR>" title="One" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Product<PBR>" title="Product" />
      </tab>
    </tab>
    <tab type="usergroup" visible="yes" url="@ref elements_group" title="Elements">
      <tab type="usergroup" visible="yes" url="@ref bipart_group" title="Bipartitions">
        <tab type="user" visible="yes" url="@ref libsemigroups::Bipartition"
          title="The Bipartition class" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Blocks" title="The Blocks class" />
        <tab type="user" visible="yes" url="@ref libsemigroups::bipartition"
          title="Bipartition helper functions" />
        <tab type="user" visible="yes" url="@ref libsemigroups::blocks"
          title="Blocks helper functions" />
        <tab type="user" visible="yes" url="@ref make_bipart_group" title="make<Biparition>" />
        <tab type="user" visible="yes" url="@ref make_blocks_group" title="make<Blocks>" />
      </tab>
      <tab type="usergroup" visible="yes" url="@ref matrix_group" title="Matrices">
        <tab type="usergroup" visible="yes" url="[none]" title="Over specific semirings">
          <tab type="usergroup" visible="yes" url="@ref bmat_index_group" title="Boolean matrices">
            <tab type="usergroup" visible="yes" url="@ref bmat8_group" title="BMat8">
              <tab type="user" visible="yes" url="@ref libsemigroups::BMat8" title="The BMat8 class" />
              <tab type="user" visible="yes" url="@ref libsemigroups::bmat8"
                title="BMat8 helper functions" />
            </tab>
            <tab type="usergroup" visible="yes" url="@ref bmat_group" title="BMat">
              <tab type="user" visible="yes" url="@ref libsemigroups::BooleanOne" title="BooleanOne" />
              <tab type="user" visible="yes" url="@ref libsemigroups::BooleanPlus"
                title="BooleanPlus" />
              <tab type="user" visible="yes" url="@ref libsemigroups::BooleanProd"
                title="BooleanProd" />
              <tab type="user" visible="yes" url="@ref libsemigroups::BooleanZero"
                title="BooleanZero" />
            </tab>
          </tab>
          <tab type="usergroup" visible="yes" url="@ref intmat_group" title="Integer matrices">
            <tab type="user" visible="yes" url="@ref libsemigroups::IntegerOne<Scalar>"
              title="IntegerOne" />
            <tab type="user" visible="yes" url="@ref libsemigroups::IntegerPlus<Scalar>"
              title="IntegerPlus" />
            <tab type="user" visible="yes" url="@ref libsemigroups::IntegerProd<Scalar>"
              title="IntegerProd" />
            <tab type="user" visible="yes" url="@ref libsemigroups::IntegerZero<Scalar>"
              title="IntegerZero" />
          </tab>
          <tab type="usergroup" visible="yes" url="@ref maxplusmat_group" title="Max-plus matrices">
            <tab type="user" visible="yes" url="@ref libsemigroups::MaxPlusPlus<Scalar>"
              title="MaxPlusPlus" />
            <tab type="user" visible="yes" url="@ref libsemigroups::MaxPlusProd<Scalar>"
              title="MaxPlusProd" />
            <tab type="user" visible="yes" url="@ref libsemigroups::MaxPlusZero<Scalar>"
              title="MaxPlusZero" />
          </tab>
          <tab type="usergroup" visible="yes" url="@ref minplusmat_group" title="Min-plus matrices">
            <tab type="user" visible="yes" url="@ref libsemigroups::MinPlusPlus<Scalar>"
              title="MinPlusPlus" />
            <tab type="user" visible="yes" url="@ref libsemigroups::MinPlusProd<Scalar>"
              title="MinPlusProd" />
            <tab type="user" visible="yes" url="@ref libsemigroups::MinPlusZero<Scalar>"
              title="MinPlusZero" />
          </tab>
          <tab type="usergroup" visible="yes" url="@ref maxplustruncmat_group"
            title="Truncated max-plus matrices">
            <tab type="user" visible="yes" url="@ref libsemigroups::MaxPlusTruncProd<T,Scalar>"
              title="MaxPlusTruncProd" />
            <tab type="user" visible="yes" url="@ref libsemigroups::MaxPlusTruncSemiring<T,Scalar>"
              title="MaxPlusTruncSemiring" />
          </tab>
          <tab type="usergroup" visible="yes" url="@ref minplustruncmat_group"
            title="Truncated min-plus matrices">
            <tab type="user" visible="yes" url="@ref libsemigroups::MinPlusTruncProd<T,Scalar>"
              title="MinPlusTruncProd" />
            <tab type="user" visible="yes" url="@ref libsemigroups::MinPlusTruncSemiring<T,Scalar>"
              title="MinPlusTruncSemiring" />
          </tab>
          <tab type="usergroup" visible="yes" url="@ref ntpmat_group"
            title="Matrices over ℕ/(t = t + p)">
            <tab type="user" visible="yes" url="@ref libsemigroups::NTPPlus<T,Scalar>"
              title="NTPPlus" />
            <tab type="user" visible="yes" url="@ref libsemigroups::NTPProd<T,Scalar>"
              title="NTPProd" />
            <tab type="user" visible="yes" url="@ref libsemigroups::NTPSemiring<T,Scalar>"
              title="NTPSemiring" />
          </tab>
          <tab type="user" visible="yes" url="@ref projmaxplus_group"
            title="Projective max-plus matrices" />
        </tab>
        <tab type="usergroup" visible="yes" url="[none]" title="Over arbitrary semirings">
          <tab type="user" visible="yes"
            url="@ref libsemigroups::DynamicMatrix<PlusOp,ProdOp,ZeroOp,OneOp,Scalar>"
            title="DynamicMatrix (compile-time)" />
          <tab type="user" visible="yes" url="@ref libsemigroups::DynamicMatrix<Semiring,Scalar>"
            title="DynamicMatrix (run-time)" />
          <tab type="user" visible="yes" url="@ref libsemigroups::StaticMatrix" title="StaticMatrix" />
        </tab>
        <tab type="usergroup" visible="yes" url="[none]" title="Row views">
          <tab type="user" visible="yes" url="@ref DynamicRowViewStaticArith"
            title="DynamicRowView (compile-time)" />
          <tab type="user" visible="yes" url="@ref DynamicRowViewDynamicArith"
            title="DynamicRowView (run-time)" />
          <tab type="user" visible="yes" url="@ref libsemigroups::StaticRowView"
            title="StaticRowView" />
        </tab>
        <tab type="user" visible="yes" url="@ref make_matrix_group" title="make<Matrix>" />
      </tab>
      <tab type="usergroup" visible="yes" url="@ref pbr_group"
        title="Partitioned binary relations (PBRs)">
        <tab type="user" visible="yes" url="@ref libsemigroups::PBR" title="PBR" />
        <tab type="user" visible="yes" url="@ref libsemigroups::pbr" title="PBR helper functions" />
        <tab type="user" visible="yes" url="@ref make_pbr_group" title="make<PBR>" />
      </tab>
      <tab type="usergroup" visible="yes" url="@ref transf_group" title="Transformations">
        <tab type="user" visible="yes" url="@ref libsemigroups::DynamicPTransf<Scalar>"
          title="DynamicPTransf" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Perm<N,Scalar>" title="Perm" />
        <tab type="user" visible="yes" url="@ref libsemigroups::PPerm<N,Scalar>" title="PPerm" />
        <tab type="user" visible="yes" url="@ref libsemigroups::PTransfBase<Scalar,Container>"
          title="PTransfBase" />
        <tab type="user" visible="yes" url="@ref libsemigroups::StaticPTransf<N,Scalar>"
          title="StaticPTransf" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Transf<Scalar>" title="Transf" />
        <tab type="user" visible="yes" url="@ref make_transf_group" title="make<Transf>" />
        <tab type="user" visible="yes" url="@ref make_pperm_group" title="make<PPerm>" />
        <tab type="user" visible="yes" url="@ref make_perm_group" title="make<Perm>" />
      </tab>
    </tab>
    <tab type="usergroup" visible="yes" url="@ref misc_group" title="Miscellaneous">
      <tab type="user" visible="yes" url="@ref constants_group" title="Constants" />
      <tab type="usergroup" visible="yes" url="@ref exception_group" title="Exceptions">
        <tab type="user" visible="yes" url="@ref libsemigroups::LibsemigroupsException"
          title="LibsemigroupsException" />
      </tab>
      <tab type="usergroup" visible="yes" url="@ref obvinf_group" title="Obviously infinite">
        <tab type="user" visible="yes" url="@ref libsemigroups::IsObviouslyInfinite"
          title="IsObviouslyInfinite" />
      </tab>
      <tab type="usergroup" visible="yes" url="@ref types_group" title="Types">
        <tab type="user" visible="yes" url="@ref libsemigroups::SmallestInteger<N>"
          title="SmallestInteger" />
      </tab>
      <tab type="user" visible="yes" url="@ref libsemigroups::Reporter" title="Reporter" />
      <tab type="user" visible="yes" url="@ref libsemigroups::ReportGuard" title="ReportGuard" />
      <tab type="user" visible="yes" url="@ref libsemigroups::Runner" title="Runner" />
    </tab>
    <tab type="usergroup" visible="yes" url="@ref orders_group" title="Orders">
      <tab type="user" visible="yes" url="@ref libsemigroups::LexicographicalCompare"
        title="LexicographicalCompare" />
      <tab type="user" visible="yes" url="@ref libsemigroups::RecursivePathCompare"
        title="RecursivePathCompare" />
      <tab type="user" visible="yes" url="@ref libsemigroups::ShortLexCompare"
        title="ShortLexCompare" />
    </tab>
    <tab type="usergroup" visible="yes" url="@ref presentations_group" title="Presentations">
      <tab type="user" visible="yes" url="@ref libsemigroups::Presentation"
        title="The Presentation class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::InversePresentation"
        title="The InversePresentation class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::presentation" title="Helper functions" />
      <tab type="user" visible="yes" url="@ref libsemigroups::presentation::examples"
        title="Examples" />
      <tab type="user" visible="yes" url="@ref to_presentation_group" title="to<Presentation>" />
      <tab type="user" visible="yes" url="@ref to_inverse_presentation_group"
        title="to<InversePresentation>" />
    </tab>
    <tab type="usergroup" visible="yes" url="@ref ranges_group" title="Ranges">
      <tab type="user" visible="yes" url="@ref libsemigroups::Random" title="Random" />
    </tab>
    <tab type="usergroup" visible="yes" url="@ref ukkonen_group" title="Suffix trees">
      <tab type="usergroup" visible="yes" url="@ref libsemigroups::Ukkonen"
        title="The Ukkonen class">
        <tab type="user" visible="yes" url="@ref libsemigroups::Ukkonen::Node"
          title="The Node class" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Ukkonen::State"
          title="The State class" />
      </tab>
      <tab type="user" visible="yes" url="@ref libsemigroups::ukkonen"
        title="Ukkonen helper functions" />
    </tab>
    <tab type="usergroup" visible="yes" url="@ref aho_corasick_group" title="Tries">
      <tab type="user" visible="yes" url="@ref libsemigroups::AhoCorasick"
        title="The AhoCorasick class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::aho_corasick"
        title="AhoCorasick helper functions" />
    </tab>
    <tab type="user" visible="yes" url="@ref make_group" title="The `make` function" />
    <tab type="user" visible="yes" url="@ref to_group" title="The `to` function" />
    <tab type="usergroup" visible="yes" url="@ref dot_group" title="Visualisation">
      <tab type="usergroup" visible="yes" url="@ref libsemigroups::Dot" title="The Dot class">
        <tab type="user" visible="yes" url="@ref libsemigroups::Dot::Edge" title="The Edge class" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Dot::Node" title="The Node class" />
      </tab>
    </tab>
    <tab type="usergroup" visible="yes" url="@ref word_graph_group" title="Word graphs">
      <tab type="user" visible="yes" url="@ref libsemigroups::Forest" title="The Forest class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::Gabow" title="The Gabow class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::Joiner" title="The Joiner class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::Meeter" title="The Meeter class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::Paths" title="The Paths class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::WordGraph" title="The WordGraph class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::forest"
        title="Forest helper functions" />
      <tab type="user" visible="yes" url="@ref libsemigroups::paths" title="Paths helper functions" />
      <tab type="user" visible="yes" url="@ref libsemigroups::word_graph"
        title="WordGraph helper functions" />
      <tab type="user" visible="yes" url="@ref make_forest_group" title="make<Forest>" />
      <tab type="user" visible="yes" url="@ref make_word_graph_group" title="make<WordGraph>" />
    </tab>
    <tab type="usergroup" visible="yes" url="@ref words_group" title="Words">
      <tab type="user" visible="yes" url="@ref libsemigroups::StringRange"
        title="The StringRange class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::WordRange" title="The WordRange class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::ToString" title="The ToString class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::ToWord" title="The ToWord class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::words"
        title="Functions for words and strings" />
      <tab type="user" visible="yes" url="@ref libsemigroups::literals" title="Literals" />
    </tab>
    <tab type="examples" visible="yes" title="" intro="" />
    <tab type="user" visible="yes" url="_HEADING_" title="Main Algorithms" />
    <tab type="usergroup" visible="yes" url="@ref action_group" title="Actions">
      <tab type="user" visible="yes" url="@ref libsemigroups::Action" title="The Action class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::ActionTraits"
        title="The ActionTraits class" />
    </tab>
    <tab type="usergroup" visible="yes" url="@ref cong_common_helpers_group"
      title="Common congruence helper function">
      <tab type="user" visible="yes" url="@ref cong_common_helpers_add_pair_group"
        title="Add generating pairs" />
      <tab type="user" visible="yes" url="@ref cong_common_helpers_contains_group"
        title="Containment" />
      <tab type="user" visible="yes" url="@ref cong_common_helpers_reduce_group"
        title="Reduce a word" />
      <tab type="user" visible="yes" url="@ref cong_common_helpers_partition_group"
        title="Partitioning" />
    </tab>
    <tab type="usergroup" visible="yes" url="@ref congruence_group" title="Congruence">
      <tab type="usergroup" visible="yes" url="@ref congruence_class_group"
        title="The Congruence class">
        <tab type="user" visible="yes" url="@ref congruence_class_mem_types_group"
          title="Member types" />
        <tab type="user" visible="yes" url="@ref congruence_class_init_group"
          title="Constructors + Initializers" />
        <tab type="user" visible="yes" url="@ref congruence_class_settings_group" title="Settings" />
        <tab type="user" visible="yes" url="@ref congruence_class_intf_group"
          title="Common member functions" />
        <tab type="user" visible="yes" url="@ref congruence_class_accessors_group" title="Accessors" />
      </tab>
      <tab type="user" visible="yes" url="@ref congruence_helpers_group"
        title="Congruence helper functions" />
      <tab type="user" visible="yes" url="@ref to_cong_group" title="to<Congruence>" />
    </tab>
    <tab type="usergroup" visible="yes" url="@ref froidure_pin_group" title="Froidure-Pin">
      <tab type="user" visible="yes" url="@ref libsemigroups::FroidurePin"
        title="The FroidurePin class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::FroidurePinBase"
        title="The FroidurePinBase class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::FroidurePinTraits"
        title="The FroidurePinTraits class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::froidure_pin"
        title="FroidurePin helper functions" />
      <tab type="user" visible="yes" url="@ref to_froidure_pin_group" title="to<FroidurePin>" />
      <tab type="user" visible="yes" url="@ref make_froidure_pin_group" title="make<FroidurePin>" />
    </tab>
    <tab type="usergroup" visible="yes" url="@ref kambites_group" title="Kambites">
      <tab type="usergroup" visible="yes" url="@ref kambites_class_group" title="The Kambites class">
        <tab type="user" visible="yes" url="@ref kambites_class_mem_types_group"
          title="Member types" />
        <tab type="user" visible="yes" url="@ref kambites_class_init_group"
          title="Constructors + Initializers" />
        <tab type="user" visible="yes" url="@ref kambites_class_intf_group"
          title="Common member functions" />
        <tab type="user" visible="yes" url="@ref kambites_class_accessors_group" title="Accessors" />
      </tab>
      <tab type="user" visible="yes" url="@ref kambites_helpers_group"
        title="Kambites helper functions" />
    </tab>
    <tab type="usergroup" visible="yes" url="@ref knuth_bendix_group" title="Knuth-Bendix">
      <tab type="usergroup" visible="yes" url="@ref knuth_bendix_class_group"
        title="The KnuthBendix class">
        <tab type="user" visible="yes" url="@ref knuth_bendix_class_mem_types_group"
          title="Member types" />
        <tab type="user" visible="yes" url="@ref knuth_bendix_class_init_group"
          title="Constructors + Initializers" />
        <tab type="user" visible="yes" url="@ref knuth_bendix_class_settings_group" title="Settings" />
        <tab type="user" visible="yes" url="@ref knuth_bendix_class_intf_group"
          title="Common member functions" />
        <tab type="user" visible="yes" url="@ref knuth_bendix_class_accessors_group"
          title="Accessors" />
      </tab>
      <tab type="user" visible="yes" url="@ref knuth_bendix_helpers_group"
        title="Knuth-Bendix helper functions" />
      <tab type="user" visible="yes" url="@ref to_knuth_bendix_group" title="to<KnuthBendix>" />
    </tab>
    <tab type="usergroup" visible="yes" url="@ref konieczny_group" title="Konieczny">
      <tab type="user" visible="yes" url="@ref libsemigroups::Konieczny" title="The Konieczny class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::KoniecznyTraits"
        title="The KoniecznyTraits class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::Konieczny::DClass"
        title="The DClass class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::konieczny"
        title="Konieczny helper functions" />
      <tab type="user" visible="yes" url="@ref make_konieczny_group" title="make<Konieczny>" />
    </tab>
    <tab type="usergroup" visible="yes" url="@ref sims_group" title="Low Index Congruences">
      <tab type="usergroup" visible="yes" url="group__sims__group.html#nested-classes"
        title="Classes">
        <tab type="user" visible="yes" url="@ref libsemigroups::MinimalRepOrc" title="MinimalRepOrc" />
        <tab type="user" visible="yes" url="@ref libsemigroups::RepOrc" title="RepOrc" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Sims1" title="Sims1" />
        <tab type="user" visible="yes" url="@ref libsemigroups::Sims2" title="Sims2" />
        <tab type="user" visible="yes" url="@ref libsemigroups::SimsRefinerIdeals"
          title="SimsRefinerIdeals" />
        <tab type="user" visible="yes" url="@ref libsemigroups::SimsSettings" title="SimsSettings" />
        <tab type="user" visible="yes" url="@ref libsemigroups::SimsStats" title="SimsStats" />
        <tab type="user" visible="yes" url="@ref libsemigroups::SimsRefinerFaithful"
          title="SimsRefinerFaithful" />
      </tab>
      <tab type="user" visible="yes" url="@ref libsemigroups::sims" title="Helper functions" />
    </tab>
    <tab type="user" visible="yes" url="@ref freeband_group" title="Radoszewski-Rytter" />
    <tab type="usergroup" visible="yes" url="@ref schreier_sims_group" title="Schreier-Sims">
      <tab type="user" visible="yes" url="@ref libsemigroups::SchreierSims"
        title="The SchreierSims class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::SchreierSimsTraits"
        title="The SchreierSims Traits class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::schreier_sims"
        title="SchreierSims helper functions" />
    </tab>
    <tab type="usergroup" visible="yes" url="@ref stephen_group" title="Stephen">
      <tab type="user" visible="yes" url="@ref libsemigroups::Stephen" title="The Stephen class" />
      <tab type="user" visible="yes" url="@ref libsemigroups::stephen"
        title="Stephen helper functions" />
    </tab>
    <tab type="usergroup" visible="yes" url="@ref todd_coxeter_group" title="Todd-Coxeter">
      <tab type="usergroup" visible="yes" url="@ref todd_coxeter_class_group"
        title="The ToddCoxeter class">
        <tab type="usergroup" visible="yes" url="@ref todd_coxeter_class_mem_types_group"
          title="Member types">
          <tab type="user" visible="yes" url="@ref libsemigroups::ToddCoxeter::options"
            title="The options nested struct" />
        </tab>
        <tab type="user" visible="yes" url="@ref todd_coxeter_class_init_group"
          title="Constructors + Initializers" />
        <tab type="user" visible="yes" url="@ref todd_coxeter_class_settings_group" title="Settings" />
        <tab type="user" visible="yes" url="@ref todd_coxeter_class_intf_group"
          title="Common functions" />
        <!-- TODO(1) need a better name than "Common functions" -->
        <tab type="user" visible="yes" url="@ref todd_coxeter_class_accessors_group"
          title="Accessors" />
        <tab type="user" visible="yes" url="@ref todd_coxeter_class_mod_group" title="Modifiers" />
        <tab type="user" visible="yes" url="@ref todd_coxeter_class_word_index_group"
          title="Word -> index" />
        <tab type="user" visible="yes" url="@ref todd_coxeter_class_index_word_group"
          title="Index -> word" />
      </tab>
      <tab type="user" visible="yes" url="@ref todd_coxeter_helpers_group"
        title="Todd-Coxeter helper functions" />
      <tab type="user" visible="yes" url="@ref to_todd_coxeter_group" title="to<ToddCoxeter>" />
    </tab>
    <tab type="user" visible="yes" url="_HEADING_" title="Bibliography" />
    <tab type="user" visible="yes" url="@ref citelist" title="Bibliography" />
    <tab type="user" visible="yes" url="_HEADING_" title="Further info" />
    <tab type="user" url="https://github.com/libsemigroups/libsemigroups" title="GitHub" />

    <!--
    <tab type="pages" visible="no" title="" intro=""/>
    <tab type="namespaces" visible="no" title="">
      <tab type="namespacelist" visible="no" title="" intro=""/>
      <tab type="namespacemembers" visible="no" title="" intro=""/>
    </tab>
    <tab type="modules" visible="no" title="" intro="">
      <tab type="modulelist" visible="no" title="" intro=""/>
      <tab type="modulemembers" visible="no" title="" intro=""/>
    </tab>
    <tab type="concepts" visible="no" title="">
    </tab>
    <tab type="interfaces" visible="no" title="">
      <tab type="interfacelist" visible="no" title="" intro=""/>
      <tab type="interfaceindex" visible="$ALPHABETICAL_INDEX" title=""/>
      <tab type="interfacehierarchy" visible="no" title="" intro=""/>
    </tab>
    <tab type="classes" visible="no" title="">
      <tab type="classlist" visible="no" title="" intro=""/>
      <tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/>
      <tab type="hierarchy" visible="no" title="" intro=""/>
      <tab type="classmembers" visible="no" title="" intro=""/>
    </tab>
    <tab type="structs" visible="no" title="">
      <tab type="structlist" visible="no" title="" intro=""/>
      <tab type="structindex" visible="$ALPHABETICAL_INDEX" title=""/>
    </tab>
    <tab type="exceptions" visible="no" title="">
      <tab type="exceptionlist" visible="no" title="" intro=""/>
      <tab type="exceptionindex" visible="$ALPHABETICAL_INDEX" title=""/>
      <tab type="exceptionhierarchy" visible="no" title="" intro=""/>
    </tab>
    -->
  </navindex>

  <!-- Layout definition for a class page -->
  <class>
    <detaileddescription title="" />
    <briefdescription visible="no" />
    <inheritancegraph visible="yes" />
    <memberdecl>
      <nestedclasses visible="yes" title="" />
      <publictypes title="" />
      <publicmethods title="" />
      <publicstaticmethods title="" />
      <related title="" subtitle="" />
      <!--
      <services title=""/>
      <interfaces title=""/>
      <publicslots title=""/>
      <signals title=""/>
      <publicattributes title=""/>
      <publicstaticattributes title=""/>
      <protectedtypes title=""/>
      <protectedslots title=""/>
      <protectedmethods title=""/>
      <protectedstaticmethods title=""/>
      <protectedattributes title=""/>
      <protectedstaticattributes title=""/>
      <packagetypes title=""/>
      <packagemethods title=""/>
      <packagestaticmethods title=""/>
      <packageattributes title=""/>
      <packagestaticattributes title=""/>
      <properties title=""/>
      <events title=""/>
      <privatetypes title=""/>
      <privateslots title=""/>
      <privatemethods title=""/>
      <privatestaticmethods title=""/>
      <privateattributes title=""/>
      <privatestaticattributes title=""/>
      <friends title=""/>
      <membergroups visible="yes"/>
      -->
    </memberdecl>
    <memberdef>
      <inlineclasses title="" />
      <typedefs title="" />
      <enums title="" />
      <services title="" />
      <interfaces title="" />
      <constructors title="" />
      <functions title="" />
      <related title="" />
      <variables title="" />
      <properties title="" />
      <events title="" />
    </memberdef>
    <allmemberslink visible="yes" />
    <usedfiles visible="$SHOW_USED_FILES" />
    <authorsection visible="yes" />
  </class>

  <!-- Layout definition for a namespace page -->
  <namespace>
    <detaileddescription title="" />
    <memberdecl>
      <nestednamespaces visible="yes" title="" />
      <constantgroups visible="yes" title="" />
      <interfaces visible="yes" title="" />
      <classes visible="yes" title="" />
      <concepts visible="yes" title="" />
      <structs visible="yes" title="" />
      <exceptions visible="yes" title="" />
      <typedefs title="" />
      <sequences title="" />
      <dictionaries title="" />
      <enums title="" />
      <functions title="" />
      <variables title="" />
      <membergroups visible="yes" />
    </memberdecl>
    <memberdef>
      <inlineclasses title="" />
      <typedefs title="" />
      <sequences title="" />
      <dictionaries title="" />
      <enums title="" />
      <functions title="" />
      <variables title="" />
    </memberdef>
    <authorsection visible="yes" />
  </namespace>

  <!-- Layout definition for a concept page -->
  <concept>
    <briefdescription visible="yes" />
    <includes visible="$SHOW_HEADERFILE" />
    <definition visible="yes" title="" />
    <detaileddescription title="" />
    <authorsection visible="yes" />
  </concept>

  <!-- Layout definition for a file page -->
  <file>
    <briefdescription visible="yes" />
    <includes visible="$SHOW_INCLUDE_FILES" />
    <includegraph visible="yes" />
    <includedbygraph visible="yes" />
    <sourcelink visible="yes" />
    <memberdecl>
      <interfaces visible="yes" title="" />
      <classes visible="yes" title="" />
      <structs visible="yes" title="" />
      <exceptions visible="yes" title="" />
      <namespaces visible="yes" title="" />
      <concepts visible="yes" title="" />
      <constantgroups visible="yes" title="" />
      <defines title="" />
      <typedefs title="" />
      <sequences title="" />
      <dictionaries title="" />
      <enums title="" />
      <functions title="" />
      <variables title="" />
      <membergroups visible="yes" />
    </memberdecl>
    <detaileddescription title="" />
    <memberdef>
      <inlineclasses title="" />
      <defines title="" />
      <typedefs title="" />
      <sequences title="" />
      <dictionaries title="" />
      <enums title="" />
      <functions title="" />
      <variables title="" />
    </memberdef>
    <authorsection />
  </file>

  <!-- Layout definition for a group page -->
  <group>
    <detaileddescription title="" />
    <!-- <briefdescription visible="yes"/> -->
    <groupgraph visible="no" />
    <memberdecl>
      <nestedgroups visible="yes" title="" />
      <dirs visible="yes" title="" />
      <files visible="yes" title="" />
      <namespaces visible="yes" title="" />
      <concepts visible="yes" title="" />
      <classes visible="yes" title="" />
      <defines title="" />
      <typedefs title="" />
      <sequences title="" />
      <dictionaries title="" />
      <enums title="" />
      <enumvalues title="" />
      <functions title="" />
      <variables title="" />
      <signals title="" />
      <publicslots title="" />
      <protectedslots title="" />
      <privateslots title="" />
      <events title="" />
      <properties title="" />
      <friends title="" />
      <membergroups visible="yes" />
    </memberdecl>
    <memberdef>
      <pagedocs />
      <inlineclasses title="" />
      <defines title="" />
      <typedefs title="" />
      <sequences title="" />
      <dictionaries title="" />
      <enums title="" />
      <enumvalues title="" />
      <functions title="" />
      <variables title="" />
      <signals title="" />
      <publicslots title="" />
      <protectedslots title="" />
      <privateslots title="" />
      <events title="" />
      <properties title="" />
      <friends title="" />
    </memberdef>
    <authorsection visible="yes" />
  </group>

  <!-- Layout definition for a directory page -->
  <directory>
    <briefdescription visible="yes" />
    <directorygraph visible="yes" />
    <memberdecl>
      <dirs visible="yes" />
      <files visible="yes" />
    </memberdecl>
    <detaileddescription title="" />
  </directory>
</doxygenlayout>