BSD-3-Clause licensed by Edward A. Kmett
Maintained by Edward A. Kmett
This version can be pinned in stack with:intern-0.9.6@sha256:1a0c01d19739a9e575d001ad4fc55cdfe90f8ef7db426498b1e251ed175ce855,1699
Used by 1 package in nightly-2024-12-30(full list with versions):

intern

Hackage Build Status

Efficient hash-consing for arbitrary data types.

Contact Information

Contributions and bug reports are welcome!

Please feel free to contact me through github or on the #haskell IRC channel on irc.freenode.net.

-Edward Kmett

Changes

0.9.6 [2024.12.04]

  • Require building with GHC 8.0 or later.

0.9.5 [2023.08.08]

  • Remove a use of the partial tail function within intern.

0.9.4 [2021.02.17]

  • Export identity from Data.Interned.IntSet.

0.9.3 [2020.09.30]

  • Add Hashable instances for InternedString, InternedByteString, InternedText, and IntSet.

0.9.2

  • Add a Semigroup IntSet instance.

0.9

  • Removed identity from the Interned class, to support applications where the identity is obtained by other means (e.g. a unique Ptr value)

0.8

  • 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

0.7

  • 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.

0.6

  • 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.

0.5.2

  • Added Data.Interned.IntSet