base-4.7.0.2: Basic libraries

Copyright | (c) The University of Glasgow 2001
License | BSD-style (see the file libraries/base/LICENSE)
Maintainer | libraries@haskell.org
Stability | experimental
Portability | non-portable
Safe Haskell | Trustworthy
Language | Haskell2010

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.