úÎÐù@      !"#$%&'()*+,-./0123456789:;<=>?  @AB    CDEFGHmonadic serialization & deserialization )  !"#$%&'()*+,-./012) '(,+*)-./012 "!$&#%  34@shows the content of a expression, must be defined bu the user 57read the content of a expression, must be user defined 68insert a reference (a variable in the where section). rshowp = insertVar showp  -- default definition 78.use the rshowp parser to serialize the object   rShow c= runW $ rshowp c 9&deserialize trough the rreadp parser   rRead str= runR rreadp $ str :I;'deserialize the string with the parser <J=serialize x with the parser >iinsert a variable at this position. The expression value is inserted the where part if it is not already c created. If the address of this object being parsed correspond with an address already parsed and A it is in the where section, then the same variable name is used  6runW showp (1::Int) -> 1 G runW (insertVar showp) (1::Int) -> v1 where { v1=1} & runW (insertVar showp) [(1::Int) ,1] -> [v1.v1] where { v1=1} ; This is useful when the object is referenced many times ?Qdeserialize a variable serialized with insertVar. Memory references are restored 7  !"#$%&'()*+,-./0123456789:;<=>?3456789>?;=:< 34567456789:;<=>?K       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLRefSerialize-0.2.4Data.Serialize Data.ParserData.RefSerializeStatErrorContextShowFVarNameMFunvarNamenumVarST<|>charanyCharupperspacedigitsepBybetweenchoiceoption notFollowedBystringboolmanyparensbracesanglesbracketssemicommadotcoloncommaSepsemiSep commaSep1semiSep1 charLiteral stringLiteralnaturalOrFloatfloatintegernaturaldecimal hexadecimaloctalsymbollexeme whiteSpace SerializeshowpreadprshowprreadprShowrReadreadHexprunRshowHexprunW insertVarreadVardebug readContexthasht parsecPluslabellabelssepBy1many1 $fMonadSTreadSRshowSR