0.2.0.0 (2023-02-08)
----------------------------------------------------------------
Change type of stream parameter in `writeExcept` from
```haskell
Producer ByteString (ExceptT abort IO) commit
```
to
``haskell
Producer ByteString IO (Either abort commit)
```
The new version is equivalent (via the `ExceptT` constructor) to
``haskell
ExceptT abort (Producer ByteString IO) commit
```
and so what this change is doing is reversing the order of the
monad transformers. The overall result is the same, but the new
version seems slightly easier to work with.
0.1.0.0 (2023-01-31)
----------------------------------------------------------------
### HashFunction
`HashFunction` type is no longer opaque; any hash function can be supported.
The type is now a newtype for `Fold` from the `gambler` library.
### Directory
Renamed `ContentAddressedDirectory` to `Directory`
`Directory` constructor is now exported
Removed `init` function, which is redundant to `Directory` constructor
### Pipes
Now using the `pipes` library to express streams.
Removed:
```haskell
writeStreaming :: ContentAddressedDirectory
-> (forall m. MonadIO m => (ByteString -> m ()) -> m ())
-> IO WriteResult
```
Added:
```haskell
writeStream :: MonadIO m =>
Directory -> Producer ByteString IO a -> m (a, WriteResult)
```
Removed:
```haskell
writeEither :: ContentAddressedDirectory
-> (forall m. MonadIO m => (ByteString -> m ()) -> m (Either bad good))
-> IO (Either bad (good, WriteResult))
```
Added:
```haskell
writeExcept :: (MonadIO m, MonadError abort m) =>
Directory
-> Producer ByteString (ExceptT abort IO) commit
-> m (commit, WriteResult)
```
### WriteResult
Renamed field from `contentAddressedFile` to `hashAddressedFile`
0.0.1.0 (2023-01-27)
----------------------------------------------------------------
Add `HashAddressed.Directory.writeEither`
0.0.0.0 (2023-01-27)
----------------------------------------------------------------
Initial release