Yes, those are good points. Maybe adding functionality similar to plt's planet http://planet.plt-scheme.org
and
http://download.plt-scheme.org/doc/371/html/mzscheme/mzscheme-Z-H-5.html#node_sec_5.4
In plt scheme including a module, not present in the local repository
,
but included via planet, resolves the module, including version,
etc..., downloads it from planet, and uses it appropriately. It makes
following various dependencies extremely easy. Updating with a new
version is updating the appropriate local module definitions.
I have no clue how it would be best to implement this for
haskell, but it is a very user friendly no hassle way to work, so I
reckon worth investigating.
Cheers,
Vlado