
* How about replacing the modules field with hidden-modules, to avoid repetition? * setup install and register have --user and --system flags, which seem to offer a choice at that point, but one has to have anticipated this choice when supplying the --prefix flag to configure. How about a --user-prefix flag to configure (with a sensible default) to say where user packages are installed? * It would be useful to have alternatives in dependencies, e.g. HGL could depend on X11 | Win32. * The compilerBinaryName for Hugs should be "ffihugs" (which compiles FFI stubs). * moveSources seems misnamed, because it copies rather than moving, and operates on the relult of building as well as sources. * Could singleStanza ignore comments like splitStanzas does? * How about using a new data type for parse results instead of Either? That would remove the dependency on mtl, which will help with bootstrapping. I know there is Distribution.Compat.Error, but that defines a Monad instance for Either, so it one uses that there'll be trouble later if some program includes both Cabal and mtl.