- Shorten all field names ignoring duplicates using DuplicateRecordFields extension.
- Use OverloadedRecordDot language extension and syntax.
- Use explicit context object from secp256k1-haskell library.
- Unify serialization into custom Marhsal and MarshalJSON classes.
- Use bytestring builders for all JSON toEncoding implementations.
- Use ormolu for formatting.
- Simplify module organisation.
- Strongly break backwards compatibility.
The new library adds compatibility with the version of libsecp256k1 provided by
Fedora. The Fedora package is a fork of that library from the Bitcoin ABC
project. It computes signature nonces slightly differently, so all tests that
depend on signatures being exactly the same for a combination of message and
private key have been removed.