Согласно документации , это должно работать:
mySample :: StdGen -> Int -> [a] -> [a]
mySample g n xs = fst $ sampleState (sample n xs) g
Тем не менее, я получаю перекрывающиеся ошибки экземпляра при попытке его скомпилировать. Я получил это для компиляции, хотя:
mySample :: StdGen -> Int -> [a] -> [a]
mySample g n xs = evalState (runRVar (sample n xs) StdRandom) g