Unique objects

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.