syntax: Syntax descriptions for unified parsing and pretty-printing.

[ data, library, mit ] [ Propose Tags ]

syntax allows you to write a single syntax description and instantiate is both as a parser and a pretty printer.

The interface is based on a custom Functor/Applicative/Monad hierarchy, provided by the semi-iso package. You fmap using a semi-isomorphism instead of function. A semi-isomorphism is a isomorphism that can fail in both directions, with slightly weakened laws. It is worth to note that Isos and Prisms from lens are valid semi-isomorphisms :)

Once you write a description you can, for example turn it into an Attoparsec parser.

See syntax-example for an example, syntax-attoparsec and syntax-pretty for a parser/printer implementation.

The library was inspired by:


Versions [faq],,,,,
Dependencies base (==4.*), lens (>=4), mono-traversable, scientific (>=0.3), semi-iso (>=0.4.1) [details]
License MIT
Copyright Paweł Nowak 2014
Author Paweł Nowak
Maintainer Paweł Nowak <>
Revised Revision 1 made by pawel834 at Mon Nov 24 15:43:23 UTC 2014
Category Data
Source repo head: git clone
Uploaded by pawel834 at Mon Nov 24 15:42:16 UTC 2014
Distributions NixOS:
Downloads 2926 total (59 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]




Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees