
I would like to compare this to the GNOME development platform. It has Gtk+ at it's hart but GNOME releases are not synchronised with Gtk+ releases. The GNOME development platform consists of a collection of standard packages. The collection is released on a time-based schedule, not a feature-based one. It puts a QA stamp on specific versions of its constituent packages that are known to work together. It has a procedure for getting packages included which include standards of API design and documentation. There is an infrastructure for maintaining, testing and releasing this platform.
This is a model I think we should consider seriously.
This sounds like something worth trying to me. I'm trying to think of libraries I would definitely see in such collection of libraries. bytestring jumps to mind immediately. A fast and stable HTTP package based on bytestring that supports developing web servers would be very nice too (I'll work more on this when I have time). The idea is basically that you implement a function of type: myApp :: Application where type Environ = Map ByteString ByteString type Headers = [(ByteString, ByteString)] type Application = Environ -> IO (Headers, ByteString) or something along those lines (i.e. a stream of user data is missing in the above example). The point is that I want to be able to do: import Network.WAI.Server (simpleServer) main = simpleServer myApp and have it just work. Sorry for the ramble. :) Cheers, Johan