2006-05-23 06:26:40 UTC
I read a post about a web library for GHC where the author of the library had decided to hide certain low-level functions, probably because he thought that the functions wouldn't be of interest to any developers. As you might guess, the poster disagreed rather vigorously.
It was with this in mind that I decided to split up the SDL binding into Multmedia.SDL and Multimedia.SDL.Raw.
Multimedia.SDL.Raw is a low-level binding to SDL, doing little more that providing a way to call the functions; the developer is expected to do most of the work.
Multimedia.SDL is a high-level binding that will provide an easier, conceptually cleaner library for development. It will, of course, be built using Multimedia.SDL.Raw. This hierarchical approach is common in functional programming (and, to a lesser extent, in imperative programming) and is well suited to the task.
This will allow developers to suppliment the convenient coding with highly-controlled coding where needed.