aboutsummaryrefslogtreecommitdiff
path: root/doc/next/6-stdlib/2-unique.md
blob: 45f3a9bad349dc5f93b93373efe366b169aa2c4b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
### New unique package

The new [unique](/pkg/unique) package provides facilities for
canonicalizing values (like "interning" or "hash-consing").

Any value of comparable type may be canonicalized with the new
`Make[T]` function, which produces a reference to a canonical copy of
the value in the form of a `Handle[T]`.
Two `Handle[T]` are equal if and only if the values used to produce the
handles are equal, allowing programs to deduplicate values and reduce
their memory footprint.
Comparing two `Handle[T]` values is efficient, reducing down to a simple
pointer comparison.