Alexey Kuleshevich - Haskell's new random package interface - January 2021 - HaskellerZ
Channel: Zürich Friends of Haskell
Date: 30/01/2021

Zurich Haskell meetup: https://www.meetup.com/HaskellerZ/events/275826446/
Slides & Notebook: https://github.com/lehins/talks/tree/master/2021-HaskellerZ

About a year ago three people took on a journey of rewriting the random package in order to improve its performance and usability. After 6 months of hard work and many experiments we were able to make a release of random-1.2.0. This was the first release in 6 years and it was also the first version that had any significant changes added to its interface since the Haskell98 report. The outcome was astonishing:

* Performance of random value generation was improved by orders of magnitude. Depending on the type the improvement factor was in a range of x36 to x1000.
* Quality of the default generator was improved significantly.
* A new mutable interface was added that unified pure random number generators with ones that require mutable state.

This talk will be about the new cool features of random, various challenges we encountered on the way and some of the decisions we had to make in order to make this release happen.