Most popular libraries not in the HP

Thomas Schilling nominolo at
Sun Jul 18 19:22:20 EDT 2010

>    binary       (rank  5/2200)


Apart from the overlap with cereal, I'm missing a pretty important
feature from the Binary class: custom monad state and support for
seekable streams.  For example, GHC has its own version of Binary to
implement lookup tables: instead of writing a string wherever a 'Name'
is needed, we write an index into a table that is constructed on the
fly.  Then we put the table at the end.  (GHC actually writes the
pointer back to the beginning of the file, but that's a different
issue.)  The seekable part is not so important, but as it is at the
moment, you can't retro-fit this such side-effecting binary instances
into the existing typeclass interface.

>    utf8-string  (rank  7/2200)

I'd normally give it a +1, but it's API got a lot more complicated in
more recent versions (some sort of attempt to make it more general).
It now requires a very good tutorial to be able to read the
documentation and look through all this type class haze.

>    ghc-paths    (rank 15/2200) -- needed by haddock!


It's very small and simple and needed by all ghc-api clients.  I think
it's fine on hackage, but it wouldn't be a big burden on the platform
to include it, I think.

>    transformers (rank 18)      -- related to mtl


mtl doesn't provide Applicative instances for some types, which is why
I use transformers + monads-fd.  Monads are a bit of the mess at the
moment; there's also monadLib and that new library underlying the
monad zipper stuff (though that seemed very complicated last time I

>    uniplate     (rank 21)      -- conflict with syb?


No conflict, it's complementary to syb.  It's very simple and it's
very easy to build manual instances.

>    json         (rank 28)


It's very simple -- too simple -- and it's API is a bit awkward.  It
also uses Strings, no bytestrings, no Text.  Because of this there're
like 3+ similar libraries out there, all with various trade-offs.

>    text         (rank 31)


Already very nice, and once Bryan feels it's ready it should go right in.

> Questions remain about what GUI lib to bring in, to augment the OpenGL
> suite.
>    * gtk2hs
>    * wxHaskell

I'd love to see cairo(+pango) go in, but other than that I don't think
either of these is ready for the platform just yet.

More information about the Libraries mailing list