On a high level, this is the order in which we should approach the tasks:
We should agree first on the high-level design of the packaging system (Section 4.3), since this will require a consensus from the Haskell Implementation authors. Details such as the format of the database and the exact API will evolve over the course of the project. The author views this as the top priority.
In parallel, we should decide on the command-line interface for the Setup script (Section 3.3), and the particulars of how it is invoked on various systems.
The first priority for Build and Install support should be pure Haskell modules, and reasonable support for wrapping make-based systems that are currently more highly evolved.
At this point, it may be possible to collect libraries, convert them to use the Library Infrastructure Project, and make them available at a central repository.
The next priority should be tools to assist in the creation and maintenance of operating-system packages (Debian and RPM for instance).
Once these features are in place, it makes sense to
augment the Distribution
module with more complex tool support like
preprocessors and external libraries.
Now we can add more fun features like GUI front-ends, downloading tools, package security tools, etc.
The author has implemented a "toy" prototype system that fulfills many of the features outlined above. It uses hmake by running it as an external command. It can build Debian packages and interfaces with the Common Debian Build System. It can prepare installations for Hugs and GHC. The author decided to stop implementation, however, until details about the Packaging system (Section 4.3) are worked through.