Most popular libraries not in the HP
nominolo at googlemail.com
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
> * 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