Biparsing Package Review Request

Could you please review my biparsing package GitHub - BebeSparkelSparkel/biparsing: Bidirectional Parsing. Work in Progress (please use issues for suggestions)?

Why you should care!

Biparsing is a bidirectional programming technique that specializes in constructing parsing and printing programs simultaneously.

  • Less Bugs, keeps the programs in sync so that when the biparsing code is modified both the parser and printer are updated
  • Less Costs, reduces maintenance and upgrade costs since changes only need to be made in a single location
  • Less Code, reduces project size in “half” (perhaps a third) since two parts are written simultaneously
6 Likes

Many biparsers us Applicative Functors which require the parse order to match the data constructor arguments.

Couldn’t you just do (\x y -> Foo y x) <$> parseX <*> parseY?

Good point thanks! I will modify the readme