Parse a subset of Ruby objects serialised with Marshal.dump.

Latest on Hackage:0.1.2

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow to host generated Haddocks.

MIT licensed by Philip Cunningham
Maintained by

Parse a subset of Ruby objects serialised with Marshal.dump.



  • Added some minor style changes.
  • Relaxed mtl lower bound.


  • Separated modules by concern.
  • Hid underlying Get monad from consumers to allow us to change the parsing library without breaking consumers should a more performant one become available.
  • Added Rubyable type class to make it easier to go between RubyObject and plain Haskell values.
  • Replaced Double with Float as per Marshal format.
  • Replaced internal representation of Hash with Vector of tuples to simplify Rubyable type class and usage for consumers.
  • Added more type safety by extracting ADT of all possible Ruby string encodings.
  • Re-ordered parser to try parsing simpler objects first.
  • Used strict State monad instead of non-strict.


  • Completed fully-functioning parser for a subset of Ruby objects serialised with Ruby's Marshal format.
Depends on 7 packages:
Used by 1 package:
comments powered byDisqus