Okay, here is the rebased bundle. I have added one additional patch that
introduces a few more newtypes to allow distinction between hashes for
inventories, patches, and pristine trees at the type level. I am not
100% happy with it because it should be really be in a separate module,
but it works for now and I have added a TODO comment for further
restructuring, which should, at one point, include D.R.Cache.
There remains a lot to do. For instance, these hashes are perfect
candidates to internally represent with ByteString instead of String
(they use only a small subset of ASCII). For hashed storage we'd ideally
want to have IO functions that take ByteString for file paths, but I
fear this may cause problems on Windows.
|