code: @Override
      public String toDot() {
          StringBuilder dotBuilder = new StringBuilder();
  
          dotBuilder.append("digraph G {\n");
  
          for (int state = 0; state < d_stateOffsets.size(); ++state) {
              for (int trans = d_stateOffsets.get(state); trans < transitionsUpperBound(state); ++trans)
                  dotBuilder.append(String.format("%d -> %d [label=\"%c\"]\n",
                          state, d_transitionTo.get(trans), d_transitionChars[trans]));
  
              if (d_finalStates.get(state))
                  dotBuilder.append(String.format("%d [peripheries=2,label=\"%d (%d)\"];\n", state, state, d_stateNSuffixes.get(state)));
              else
                  dotBuilder.append(String.format("%d [label=\"%d (%d)\"];\n", state, state, d_stateNSuffixes.get(state)));
          }
  
          dotBuilder.append("}");
  
          return dotBuilder.toString();
      }
docs: Give the Graphviz dot representation of this automaton. States will also list the
  number of suffixes 'under' that state.
  
  @return