Efficient hash-consing for arbitrary data types
|LTS Haskell 20.23:||0.9.4@rev:2|
|Stackage Nightly 2023-06-04:||0.9.4@rev:2|
|Latest on Hackage:||0.9.4@rev:2|
Maintained by Edward A. Kmett
This version can be pinned in stack with:
Depends on 6 packages(full list with versions):
Used by 2 packages in lts-18.28(full list with versions):
- Add a
identityfrom the Interned class, to support applications where the identity is obtained by other means (e.g. a unique Ptr value)
- Disabled cache removal as it was causing problems on large data sets. There is no good way to ensure that both references remain alive long enough to finish comparisons.
- Switched to IORef from MVar
- Fixed problem where comparisons could happen between data structures while one was still a thunk, leading to equal structures comparing as inequal in limited circumstances, by appropriately using strictness annotations.
- Widened the caches so they don’t go through a single MVar per type. This has made a dramatic impact on performance. However, this broke the previous invariant that newer entries always had higher Ids than older entries.
- Added Data.Interned.IntSet