Would this be a good starting point?

]]>I think current approaches to creating uniform API for PRNGs are using wrong abstraction. PRNG produces uniformly distributed bitvector of fixed length, Word32 or Word64 usually. This is not enough for practical uses so minimal helpers are added for generating uniform distributions and maybe something more advanced.

Right structure for _the_ package for generating random numbers is:

1. PRNG itself

2. Primitive generators like uniform distributions. They aren’t trivial. And if we really concerned about performance doubly so. Say we want to generate vector of Word8 and PRNG produces Word32. Naive approach is to generate 1 word per sample. But we can generate 4 word per sample! Implementing such optimization is difficult should be done only once.

3. More complicated generators for various distributions. Again they will benefit from concentrated effort.

So in my opinion way forward is assimilating every major PRNG package into single package/set of packages with common API.

]]>