C~;"d      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcNonedmonadic serialization  d      dNoneemonadic serialization & deserialization afghij k!l"m#$%&n'o()*+pq,-./r0123456789:;<stu=vwxyz{|}~>?@ABCDEFGe1 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG1- "'()*+/,#$.%!&<=A@?>BCDEFG012345769;8:_fghij k!l"m#$%&n'o()*+pq,-./r0123456789:;<stu=vwxyz{|}~>?@ABCDEFGeNoneL6insert a reference (a variable in the where section). N.return the serialized list of variable values d useful for delayed deserialzation of expresions, in case of dynamic variables were deserialization 2 is done when needed, once the type is known with W P.use the rshowp parser to serialize the object   rShow c= runW $ rshowp c Q&deserialize trough the rreadp parser   rRead str= runR rreadp $ str TGif a is an instance of Show, showpText can be used as the showp method M the drawback is that the data inside is not inspected for common references W so it is recommended to create your own readp method for your complex data structures UGif a is an instance of Read, readpText can be used as the readp method M the drawback is that the data inside is not inspected for common references W so it is recommended to create your own readp method for your complex data structures V'deserialize the string with the parser WQread an expression with the variables definedd in a context passed as parameter. Xserialize x with the parser Y0serialize x witn a given context and the parser ZWserialize the variables. if the Bool flag is true, it prepend the text with the string where [9return the serialization instead of updating the writer \Mreturn the variable name of the serialized data, which is put in the context  and does not update the writer ]Linsert a variable at this position. The expression value is inserted in the where section 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 <inform if the expression iwas already referenced and return  Right varname N otherwise, add the expresion to the context and giive it a name and return  Left varname S The varname is not added to the serialized expression. The user must serialize it e This is usefu for expressions that admit different syntax depending or recursiviity, such are lists ^Qdeserialize a variable serialized with insertVar. Memory references are restored _VWrite a String in the serialized output with an added whitespace. Deserializable with E `2Write a char in the serialized output (no spaces) a1serialize a variable which has a Binary instance b%deserialize a variable serialized by a defualt instances +HI@shows the content of a expression, must be defined bu the user J7read the content of a expression, must be user defined KLMNOPQRSTUVWXYZ[\]^_`abcO !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcHIJLM[\VXTUab_`PQ]^cRSNOKZWY)HIJKLMNOPQRSTUVWXYZ[\]^_`abc       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~RefSerialize-0.3.0.0Data.RefSerialize.SerializeData.RefSerialize.ParserData.RefSerializeSTWStatWErrorContextShowFVarExprVarNameMFunemptyassocsinsertdeletelookuptoListfromList readContexthashtvarNamenumVarSTRStatR<|>charanyCharupperspacedigitoneOfnoneOftry readContentsepBybetweenchoiceoption notFollowedBymanyTillstringboolmanyparensbracesanglesbracketssemicommadotcoloncommaSepsemiSep commaSep1semiSep1 charLiteral stringLiteralnaturalOrFloatfloatintegernaturaldecimal hexadecimaloctalsymbollexeme whiteSpace Serializeshowpreadp newContextrshowprreadp getRContext getWContextrShowrReadreadHexpshowHexp showpText readpTextrunRrunRCrunWrunWC showContextshowpsrshowps insertVarreadVar insertString insertChar showpBinary readpBinarytakep $fMonadSTW $fMonadSTR parsecPluslabellabelsunexpectedEndOfInputsatisfydigit1octDigithexDigit unexpectedsepBy1 skipMany1skipManymany1 characterChar charEscape charLetter stringChar stringLetter stringEscape escapeEmpty escapeGap escapeCode charControlcharNumcharEsc charAsciiescMapasciiMap ascii2codes ascii3codesascii2ascii3floatingnatFloat zeroNumFloat decimalFloat fractFloat fractExponentfraction exponent'intsignnat zeroNumbernumber simpleSpace$fMonadPlusSTRisInVars $fSerializea!>whereSepshowExpr binPrefix binPrefixSp$fSerializeEither$fSerializeMaybe$fSerializeMap$fSerialize(,,,)$fSerialize(,,)$fSerialize(,) $fSerialize[]$fSerialize[]0