TKQ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(c) Philip Cunningham, 2015MIThello@filib.io experimentalportableNone Read an Int8.Read an Int16.[Read a Word24 in little endian format. Since Word24 unavailable in Data.Int we use Word32.@Read an Int24. Since Int24 unavailable in Data.Int we use Int32. Read an Int32.    (c) Philip Cunningham, 2015MIThello@filib.io experimentalportable Safe-Inferred .ADT representing all supported Ruby encodings.p)Lifts encoding strings into encoding ADT.q,Lowers encoding ADT into an encoding string.h  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqh  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqhqp onmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!   eonmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  pq(c) Philip Cunningham, 2015MIThello@filib.io experimentalportableNone24Tr7Transform plain Haskell values to RubyObjects and back.s5Takes a plain Haskell value and lifts into RubyObjecttCTakes a RubyObject transforms it into a more general Haskell value.u Representation of a Ruby object.vrepresents an invalid objectw represents a Symbolx represents a Floaty represents a Stringzrepresents an IVar{represents an Hash|represents an Array} represents a Fixnum~ represents true or false represents nilrstuvwxyz{|}~rstuvwxyz{|}~u~}|{zyxwvrstrstu ~}|{zyxwv(c) Philip Cunningham, 2015MIThello@filib.io experimentalportableNoneB 7State that we must carry around during deserialisation. object cache. symbol cache.9Marshal monad endows the underlying Get monad with State."Lift Get monad into Marshal monad.7Constructs an empty cache to store symbols and objects.Look up value in cache.Look up object in object cache.!Look up a symbol in symbol cache.)Write an object to the appropriate cache. (c) Philip Cunningham, 2015MIThello@filib.io experimentalportableNoneX &Character that represents NilCharlass.%Character that represents FalseClass.$Character that represents TrueClass. Character that represents Array.!Character that represents Fixnum. Character that represents Float.Character that represents Hash.Character that represents IVar.&Character that represents Object link.!Character that represents String.!Character that represents Symbol."Character that represents Symlink.   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnouvwxyz{|}~ onmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  u~}|{zyxwv (c) Philip Cunningham, 2015MIThello@filib.io experimentalportableNoneTUX Parses Marshal version. Parses a subset of Ruby objects.Parses  )http://ruby-doc.org/core-2.2.0/Array.htmlArray.Parses  *http://ruby-doc.org/core-2.2.0/Fixnum.htmlFixnum.Parses  )http://ruby-doc.org/core-2.2.0/Float.htmlFloat.Parses  (http://ruby-doc.org/core-2.2.0/Hash.htmlHash.Parses  Mhttp://docs.ruby-lang.org/en/2.1.0/marshal_rdoc.html#label-Instance+VariablesInstance Variables.3Pulls an Instance Variable out of the object cache.Parses  *http://ruby-doc.org/core-2.2.0/String.htmlString.Parses  *http://ruby-doc.org/core-2.2.0/Symbol.htmlSymbol.'Pulls a Symbol out of the symbol cache.+Lift Get into Marshal monad and then label.&Label underlying Get in Marshal monad.  (c) Philip Cunningham, 2015MIThello@filib.io experimentalportableNonefParses a subset of Ruby objects serialised with Marshal, Ruby's built-in binary serialisation format.fParses a subset of Ruby objects serialised with Marshal, Ruby's built-in binary serialisation format.Converts an Either to a Maybe.Serialised Ruby objectDe-serialisation resultSerialised Ruby object(Error message or de-serialisation result  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnostuvwxyz{|}~ts       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ruby-marshal-0.1.2Data.Ruby.Marshal.IntData.Ruby.Marshal.EncodingData.Ruby.Marshal.RubyObjectData.Ruby.Marshal.MonadData.Ruby.Marshal.TypesData.Ruby.Marshal.GetData.Ruby.MarshalbaseGHC.IntInt16GHC.WordWord8cereal-0.5.2.0Data.Serialize.GetgetWord8 getWord32le getWord16legetInt8 getInt16le getWord24le getInt24le getInt32leRubyStringEncodingUnsupportedEncoding Windows_874 Windows_31J Windows_1258 Windows_1257 Windows_1256 Windows_1255 Windows_1254 Windows_1253 Windows_1252 Windows_1251 Windows_1250UTF_8UTF_7UTF_32LEUTF_32BEUTF_32UTF_16LEUTF_16BEUTF_16 UTF8_SoftBankUTF8_MAC UTF8_KDDI UTF8_DoCoMoUS_ASCIITIS_620Stateless_ISO_2022_JP_KDDIStateless_ISO_2022_JP Shift_JIS SJIS_SoftBank SJIS_KDDI SJIS_DoCoMo MacUkraine MacTurkishMacThai MacRomaniaMacRoman MacJapanese MacIcelandMacGreek MacCyrillic MacCroatian MacCentEuroKOI8_UKOI8_R ISO_8859_9 ISO_8859_8 ISO_8859_7 ISO_8859_6 ISO_8859_5 ISO_8859_4 ISO_8859_3 ISO_8859_2 ISO_8859_16 ISO_8859_15 ISO_8859_14 ISO_8859_13 ISO_8859_11 ISO_8859_10 ISO_8859_1ISO_2022_JP_KDDI ISO_2022_JP_2 ISO_2022_JPIBM869IBM866IBM865IBM864IBM863IBM862IBM861IBM860IBM857IBM855IBM852IBM775IBM737IBM437GBKGB2312GB1988GB18030GB12345EucJP_ms Emacs_MuleEUC_TWEUC_KR EUC_JP_2004EUC_JPCP951CP950CP949CP855CP852CP850CP51932CP50221CP50220Big5_UAO Big5_HKSCSBig5 ASCII_8BITtoEncfromEncRubyabletoRubyfromRuby RubyObject UnsupportedRSymbolRFloatRStringRIVarRHashRArrayRFixnumRBoolRNil $fRubyableMap $fRubyable[] $fRubyable[]0$fRubyableMaybe $fRubyable(,)$fRubyableFloat$fRubyableByteString$fRubyableVector$fRubyableVector0 $fRubyableInt$fRubyableBool $fRubyable()$fRubyableRubyObjectCacheobjectssymbolsMarshal runMarshal liftMarshal emptyCache readCache readObject readSymbol writeCacheNilChar FalseCharTrueChar ArrayChar FixnumChar FloatCharHashCharIVarCharObjectLinkChar StringChar SymbolChar SymlinkChargetMarshalVersion getRubyObjectdecode decodeEithergetArray getFixnumgetFloatgetHashgetIVar getObjectLink getString getSymbol getSymlink liftAndLabel marshalLabelhush