+++ /dev/null
-definition module GenCompress\r
-\r
-import StdGeneric, StdMaybe\r
-\r
-:: BitVector :== {#Int}\r
-\r
-:: CompressSt\r
-\r
-generic gCompress a :: !a -> *CompressSt -> *CompressSt\r
-derive gCompress Int, Real, Bool, Char, String, UNIT, PAIR, EITHER, CONS, FIELD, OBJECT, [], {}, {!}\r
-\r
-generic gCompressedSize a :: a -> Int\r
-derive gCompressedSize Int, Real, Bool, Char, String, UNIT, PAIR, EITHER, CONS, FIELD, OBJECT, [], {}, {!}\r
-\r
-generic gUncompress a :: (u:CompressSt -> ((Maybe a),u:CompressSt))\r
-derive gUncompress Int, Real, Bool, Char, String, UNIT, PAIR, EITHER, CONS, FIELD, OBJECT, [], {}, {!}\r
-\r
-compress :: !a -> BitVector | gCompressedSize{|*|} a & gCompress{|*|} a\r
-uncompress :: (BitVector -> Maybe a) | gUncompress{|*|} a\r