vault-0.3.0.2: a persistent store for values of arbitrary types

Safe Haskell | Safe-Inferred

Data.Unique.Really

Description

An abstract interface to a unique symbol generator.

Synopsis

- data Unique
- newUnique :: IO Unique
- hashUnique :: Unique -> Int

# Documentation

data Unique Source

An abstract unique value. Values of type `Unique` may be compared for equality and hashed into Int.

Note: Unlike the symbols from Data.Unique, the symbols from this module do not become equal after reloads in the GHC interpreter!

Instances

Eq Unique |
Hashable Unique |

newUnique :: IO Unique Source

Creates a new object of type `Unique`. The value returned will not compare equal to any other value of type `Unique` returned by previous calls to `newUnique`. There is no limit on the number of times you may call this function.

hashUnique :: Unique -> Int Source

Hashes a `Unique` into an `Int`. Two Uniques may hash to the same value, although in practice this is unlikely. The `Int` returned makes a good hash key.