Polytypic Compact Printing and Parsing

[Paper as .ps.gz (72 Kb), implementation as .tar (30 Kb) ]


A generic compact printer and a corresponding parser are constructed. These programs transform values of any regular datatype to and from a bit stream. The algorithms are constructed along with a proof that printing followed by parsing is the identity. Since the binary representation is very compact, the printer can be used for compressing data - possibly supplemented with some standard algorithm for compressing bit streams. The compact printer and the parser are described in the polytypic Haskell extension PolyP.


The polytypic core of the implementation is in the file PrintParseArrows.phs and the complete program (including a makefile) is in dc.tar.

The paper appeared in the proceedings of ESOP'99, in Lecture Notes in Computer Science 1576, 1999.

Last modified: Tue Aug 17 15:20:53 MET DST 1999 by
Patrik Jansson / NOpatrikjSP@AMchalmers.se