text: @import Main._
  @sect{Comparisons}
      @p
          FastParse differs from all other parser-combinator libraries in the
          Scala universe, in quite substantial ways:
  
      @ul
          @li
              Compared to @a("Parboiled2", href:="https://github.com/sirthias/parboiled2"),
              FastParse has much better error messages (both compile and run-time),
              has much simpler and more predictable behavior. Parboiled2 suffers from many
              @a("usability problems and bugs", href:="https://groups.google.com/forum/#!msg/scala-internals/4N-uK5YOtKI/9vAdsH1VhqAJ")
              that make it excruciating difficult to use, and also does not
              support higher-order rules. FastParse suffers from none of these
              problems.
          @li
              @a("Parboiled1", href:="https://github.com/sirthias/parboiled/wiki")
              is a Java library, and does not/cannot work on Scala.js
          @li
              @a("scala-parser-combinators", href:="https://github.com/scala/scala-parser-combinators")
              is similar, but poorly executed. It is ~2-300x slower than FastParse,
              has an awkward inheritance-based API, and is full of bugs despite
              being half a decade old. FastParse is faster, has self-contained
              pure-functional parsers, and fixes bugs e.g. by having the
              @hl.scala{.log} operator actually work.
  