This is pretty cool and useful! I had been doing bootleg parser combinators in JavaScript up until now. This works, although being someone who doesn't write Haskell I assume that the magic that makes parser combinators efficient is not easy to implement in most languages. (I've been using nom with Rust on the side too and it seems to do the same naive stuff that I do.)<p>If you ever want to parse <i>binary</i> data using JavaScript, I will always recommend the excellent Kaitai Struct project.<p><a href="https://kaitai.io/" rel="nofollow">https://kaitai.io/</a>