base-4.3.1.0: Basic libraries

Portability | non-portable
Stability | experimental
Maintainer | libraries@haskell.org

Data.Unique

Contents

- Unique objects

Description

An abstract interface to a unique symbol generator.

Synopsis

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

# Unique objects

data Unique

An abstract unique object. Objects of type `Unique` may be compared for equality and ordering and hashed into `Int`.

Instances

Eq Unique |
Ord Unique |
Typeable Unique |

newUnique :: IO Unique

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 `newUnique` may be called.

hashUnique :: Unique -> Int

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