Why do values from Data.Unique need to be hashed before being exposed?
===

`Data.Unique.hashUnique` is used to obtain an almost-unique `Int` from a `Unique` value:

    hashUnique :: Unique -> Int
    #if defined(__GLASGOW_HASKELL__)
    hashUnique (Unique i) = I# (hashInteger i)
    #else
    hashUnique (Unique u) = fromInteger (u `mod` (toInteger (maxBound :: Int) + 1))
    #endif

Why doesn't `Data.Unique` offer a function like `getUnique` for obtaining truly unique values?

    getUnique :: Unique -> Integer
    getUnique (Unique i) = i

Was this an oversight in the development of the library? Can we get such a function added to Data.Unique? There are many cases where *truly* unique values are needed.