import mir.random.algorithm;
import std.stdio: write, writeln, writef, writefln;
import mir.array.allocation: array;
import mir.random.ndvariable: sphereVar;
import std.algorithm.iteration: map;
immutable seed = unpredictableSeed;
setThreadLocalSeed!Random(seed);
Random* rng_ptr = threadLocalPtr!Random;
auto sample1 = rng_ptr.range1(sphereVar, payload[]).take(3).map!"a.dup".array;
Random rng = Random(seed);
auto sample2 = sphereVar.range!rng(payload[]).take(3).map!"a.dup".array;
assert(sample1 == sample2);
auto sample3 = sphereVar.range(payload[]).take(3).map!"a.dup".array;