I was poking around the source for cabal-install while investigating a (hopeful) GSoC product. One thing seems a little odd to me: is there a reason that, for example, getAvailablePackages isn't in a separate library? Or is similar functionality in a different package than Cabal already and I just haven't found it (doing a search for "cabal" on Hackage didn't appear to turn up anything)?