### 0.8.0

 - Bump ppxlib to `>=0.36.2` (#110, @patricoferris)
 - Update to ocamlformat 0.28.1 (#110, @patricoferris)
 - Fix `short_hash` signature for ppx_repr deriver (#109, @mattiasdrp)

### 0.7.0 (2023-08-02)

 - Add quadruples as another type combinator (#104, @patricoferris)

 - Expose the underlying `Jsonm.decoder` for custom JSON serialisation in
   functions like `Repr.like`. (#103, @patricoferris)

### 0.6.0 (2022-01-04)

- Change the type of `Repr.decode_bin` to take a mutable buffer offset rather
  than threading an immutable position. (#81, @CraigFe)

- Expose a `Repr.Binary` module providing direct access to functions for
  interacting with Repr's binary serialisation format. (#88, @CraigFe)

### 0.5.0 (2021-10-12)

- Add `Repr.int63`, a representation of the `Optint.Int63.t` type (provided by
  the `optint` library). (#80, @CraigFe)

- Change `Repr.{like,map,partially_abstract}` functions to not require `_
  staged` wrappers around any (monomorphic) overrides. (#77, @CraigFe)

- Fix a bug causing custom `Repr.{random,random_state}` implementations to be
  ignored. (#79, @CraigFe)

- Fix `Repr.pre_hash` to rely on itself recursively. This ensures that custom
  `pre_hash` functions attached to components of larger types are not ignored.
  (#71, @CraigFe)

### 0.4.0 (2021-06-16)

- Add `Repr.{random,random_state}`, a pair of generic functions for sampling
  random instances of representable types. (#58, @CraigFe)

- Add `Repr.Size`, which provides sizing functions for binary codecs that are
  more informative than the existing `Repr.size_of`. Types built using `Repr.v`
  and `Repr.like` must now pass a sizer built using `Repr.Size.custom_*`. (#69,
  @CraigFe)

### 0.3.0 (2021-04-30)

- `Repr.v` is now called `Repr.abstract`. (#52, @CraigFe)

- Added `Repr.partially_abstract`, a helper combinator for constructing type
  representations with overridden operations. (#52, @CraigFe)

- Add combinators for standard library container types: `ref`, `Lazy.t`,
  `Seq.t`, `Queue.t`, `Stack.t`, `Hashtbl.t`, `Set.t` and `Map.t`.
  (#43, @CraigFe)

- Improve PPX `Repr.t` generation for types in the standard library. References
  to e.g. `Bool.t` or `Stdlib.Int32.t` will be resolved to the corresponding
  combinators. (#43, @CraigFe)

- Add support for deriving mutually-recursive pairs of type representations
  with `ppx_repr`. (#42, @CraigFe)

- Add a JSON object combinator: `Json.assoc` (#53, @Ngoguey42)

- Drop the payload of NaN floating point values during JSON encoding. `-nan`
  strings are not emitted any more. (#55, @Ngoguey42)

### 0.2.1 (2021-01-18)

- Support Ppxlib versions >= 0.18.0. (#35, @CraigFe)
- Add missing dependency on `ppx_deriving`. (#36, @CraigFe)
- Add a representation of the `Either.t` type. (#33, @CraigFe)

### 0.2.0 (2020-12-18)

- Improve performance of variable-size integers encoding and decoding.
  (#24, #30, @samoht)
- Require `short_hash` operations to be explicitly unstaged.
  (#15, @CraigFe)
- Require `equal` and `compare` operations to be explicitly unstaged.
  (#16, @samoht)

### 0.1.0 (2020-10-16)

Initial release.
