Hi, I just wanted to mention that I have just published
[Alea](https://github.com/unicredit/alea), a library to work with random
variables.
It is still in a pretty early stage, and some things may not work very well,
but this is an example of use:
import alea, future
import random/urandom, random/mersenne
type Coin = enum Head, Tails
proc asInt(x: float): int = x.int
lift(asInt)
var rng = wrap(initMersenneTwister(urandom(16)))
let
p = poisson(20).asInt.filter((x: int) => x mod 2 == 0)
g = gaussian(mu = 3, sigma = 12).where(p, (t: int) => t > 6)
coin = choose(@[Head, Tails])
echo rng.stddev(g)
echo rng.sample(coin)