The primary constructor,
newUID, runs in the
IO monad, primarily because of its
use of a random number generator during construction. If all you need is a unique string,
newUIDString is just a wrapper that creates a new UID and then invokes
toBase32 on it.
A new, randomly generated identifier
Construct a new identifier and immediately convert to its base32 representation using