
Adrian Hey wrote:
What I'm proposing to do is 3 separate packages. [...] This makes dependencies clear and means Haskellers won't have to install SDL stuff they don't need.
Sorry, I misunderstood you. Having separate packages makes much sense for this scenario, indeed.
I think the only real issue is should the core (I.E. the SDL binding) actually have a .Core suffix?
I have a small brain and therefore I like simple rules like "Every module Foo simply re-exports the modules Foo.*". :-) Using the .Core suffix would make things easy: * We have an SDLCore package with modules rooted at Multimedia.SDL.Core (a collector module) with sub-modules Multimedia.SDL.Core.Video, ... * Same for an SDLImage package at Multimedia.SDL.Image * SDLTTF at Multimedia.SDL.TTF ... A "super collector" module Multimedia.SDL would not be a good idea in this case, because its export list would depend on the available SDL stuff.
[...] Though we have a similar situation with Foreign and Foreign.C for example, so I guess it's not really an issue).
Well, Foreign is a bad example, which has been discussed on this list recently. When we have versioned packages, Foreign should re-export all the modules below it, nothing more and nothing less IMHO. Cheers, S.