A generic compact printer and a corresponding parser are constructed. These programs transfrom values of any regular datatype to and from a bit stream. The algorithms are constructed along with a proof that pinting followed by parsing is the identity. Since the binary representation is vry 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.
展开▼