Polytypic Compact Printing and Parsing
.ps.gz (72 Kb),
.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
and the complete program (including a makefile) is in
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
Patrik Jansson /