úÎ27.â:      !"#$%&'()*+,-./0123456789(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.    NoneBX  Representation of a Ruby object. represents an invalid object  represents a Symbol  represents a Float represents a Stringrepresents an IVarrepresents an Hashrepresents an Array represents a Fixnum represents true or false represents nil8Marshal monad endows the underling Get monad with State.+Convey when unsupported object encountered.%represents an unsupported Ruby object object cache. symbol cache."Lift Get monad into Marshal monad.NilClass  FalseClass! TrueClass"Array#Fixnum$Float%Hash&IVar' Object link(String)Symbol*Symlink!  !"#$%&'()*!  !"#$%&'()*!   !"#$%&'()*   !"#$%&'()*(c) Philip Cunningham, 2015MIThello@filib.io experimentalportableNoneHMTUX+Deserialises Marshal version.,&Deserialises a subset of Ruby objects.- Deserialises  ,http://ruby-doc.org/core-2.2.0/NilClass.htmlnil.. Deserialises  -http://ruby-doc.org/core-2.2.0/TrueClass.htmltrue and  .http://ruby-doc.org/core-2.2.0/FalseClass.htmlfalse./ Deserialises  )http://ruby-doc.org/core-2.2.0/Array.htmlArray.0 Deserialises  *http://ruby-doc.org/core-2.2.0/Fixnum.htmlFixnum.1 Deserialises  )http://ruby-doc.org/core-2.2.0/Float.htmlFloat.2 Deserialises  (http://ruby-doc.org/core-2.2.0/Hash.htmlHash.3 Deserialises  Mhttp://docs.ruby-lang.org/en/2.1.0/marshal_rdoc.html#label-Instance+VariablesInstance Variables.4 Deserialises  *http://ruby-doc.org/core-2.2.0/Symbol.htmlSymbol.5 Deserialises  *http://ruby-doc.org/core-2.2.0/String.htmlString.6 Deserialises  *http://ruby-doc.org/core-2.2.0/Symbol.htmlSymbol.7 Deserialises  *http://ruby-doc.org/core-2.2.0/Symbol.htmlSymbol.:Lift label into Marshal monad.;Guard against invalid input.<#Look up object in our object cache.=%Look up a symbol in our symbol cache.>)Write an object to the appropriate cache.+,-./01234567:;<=> +,-./01234567 +,-./01234567+,-./01234567:;<=>(c) Philip Cunningham, 2015MIThello@filib.io experimentalportableNone8lDeserialises a subset of Ruby objects serialised with Marshal, Ruby's built-in binary serialisation format.9lDeserialises a subset of Ruby objects serialised with Marshal, Ruby's built-in binary serialisation format.?7Constructs an empty cache to store symbols and objects.@Converts an Either to a Maybe.8Serialised Ruby objectDe-serialisation result9Serialised Ruby object(Error message or de-serialisation result?@! +,-./01234567898989?@A  !"##$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIruby-marshal-0.0.1Data.Ruby.Marshal.Internal.IntData.Ruby.Marshal.TypesData.Ruby.Marshal.GetData.Ruby.MarshalbaseGHC.IntInt16GHC.WordWord8cereal-0.4.1.1Data.Serialize.GetgetWord8 getWord32le getWord16legetInt8 getInt16le getWord24le getInt24le getInt32le RubyObjectRErrorRSymbolRFloatRStringRIVarRHashRArrayRFixnumRBoolRNilMarshal runMarshalError UnsupportedCache_objects_symbols liftMarshalNilCFalseCTrueCArrayCFixnumCFloatCHashCIVarC ObjectLinkCStringCSymbolCSymlinkCgetMarshalVersion getRubyObjectgetNilgetBoolgetArray getFixnumgetFloatgetHashgetIVar getObjectLink getString getSymbol getSymlinkdecode decodeEither marshalLabeltag readObject readSymbol writeCache emptyCachehush