Adaptor to switch among random packages easily.
- splitmix
- tf-random
- random
Because they do not provide pure interfaces, Need to write IO monad wrapper and generalization for pure packages.
- pcg-random
- mwc-random
- sfmt
- Only for pure interface (
IO
orST
monad interfaces are not supported yet) - The dependency footprint is too big because of the character of the package
- This can be resolved by providing an adaptor package for each random package, but this means that there would be very many packages.
Not only for a unified function interface, but for benchmarking and comparing the performance of each library.
When you write a comparing benchmark, you may not need this. However, when you write a real application, you may want an adaptor which helps easy switching among the packages.
Yes, Backpack is a beautiful feature. However, even with Backpack, when the interfaces among the target packages are not the same, we still needs an Adaptor package.