Combinator library for defining both type safe parsers and pretty printers simultaneously. This library performs well in practice because parsers and printers are implemented in CPS and because arguments are always curried, rather than packed into nested tuples.