-
Notifications
You must be signed in to change notification settings - Fork 12
Description
I think the ULID
type shouldn't be an instance of Random
(or Uniform
since random-1.2) by taking the trouble to use unsafePerfomIO
.
The random
function should be pure: if the argument g
is the same value, the result of random g
should be same. Breaking this rule can cause some troubles. For example, we can't reproduce the same value with the same generator (perhaps deserialized from a database). I haven't actually got troubled with such a case, but I think it'll cause some hard-to-find bug some day.
My suggestion is to drop the support for Random
instance of ULID
, and define the instance Random ULIDRandom
instead. That makes the package safely available.
Speaking of the random package, due to the changes in random-1.2, now this package can't be built with the latest random. So how about fixing the problem and supporting random-1.2 at the same time?