@mcc @dysfun there’s quite a good chapter on parsec (megaparsec precursor) in “real world Haskell” (which is free online). I concur that a parsec variant is the best choice for this, even for micro-scale parsing . And I found that counter intuitive first time