package gmap

  1. Overview
  2. Docs
Heterogenous maps over a GADT

Install

Dune Dependency

Authors

Maintainers

Sources

gmap-0.3.0.tbz
sha256=04dd9e6226ac8f8fb4ccb6021048702e34a482fb9c1d240d3852829529507c1c
sha512=71616981f5a15d6b2a47e18702083e52e81f6547076085b1489f676f50b0cc47c7c2c4fa19cb581e2878dc3d4f7133d0c50d8b51a8390be0e6e30318907d81d3

CHANGES.md.html

0.3.0 (2019-04-20)

  • S.union and S.merge could invalidate the invariant: foreach k \in m . m[k] = (key, value) /\ k = key which could lead to assertion fail in find

  • The signatures uses semi-explicit polymorphism with a record type:

    • S.equal : { f : 'a key -> 'a -> 'a -> bool } -> t -> t -> bool

    • S.merge : { f : 'a key -> 'a option -> 'a option -> 'a option } -> t -> t -> t

    • S.union : { f : 'a key -> 'a -> 'a -> 'a option } -> t -> t -> t

    • new function S.map : { f : 'a key -> 'a -> 'a } -> t -> t

  • Interface duplication for "bindings" and "value" were removed: S.findb, S.getb, S.addb, S.addb_unless_bound no longer exist, use S.find, S.get, S.add, S.add_unless_bound instead.

  • The pretty-printer S.pp was removed, and K.pp is no longer required! S.pp is: let pp ppf = M.iter (fun (M.B (k, v)) -> Fmt.pf ppf (K.pp k) v)

  • no more Fmt dependency

  • added some initial tests

0.2.1 (2019-02-16)

  • move build system to dune

0.2.0 (2018-06-24)

  • New function update.

  • New function add_unless_bound and addb_unless_bound.

  • Replace type v = V : 'a key * 'a -> v by type b = B : 'a key * 'a -> b.

  • Renamed functions ending with v to b

0.1.0 (2018-06-16)

  • Initial release