The random-fu package


Random number generation based on modeling random variables in two complementary ways: first, by the parameters of standard mathematical distributions and, second, by an abstract type (RVar) which can be composed and manipulated monadically and sampled in either monadic or "pure" styles.

The primary purpose of this library is to support defining and sampling a wide variety of high quality random variables. Quality is prioritized over speed, but performance is an important goal too.

In my testing, I have found it capable of speed comparable to other Haskell libraries, but still a fair bit slower than straight C implementations of the same algorithms.


Versions,,,, 0.0.3,,, 0.1.3, 0.1.4, 0.2,,,,,,,,,,,
Change log
Dependencies base (==4.*), erf, erf-native, log-domain (>=0.9 && <1.0), math-functions, monad-loops (>=, mtl (>=1 && <3), random-shuffle, random-source (==0.3.*), rvar (==0.2.*), syb, template-haskell, transformers, vector (>=0.7) [details]
License PublicDomain
Author James Cook <>
Maintainer Dominic Steinitz <>
Category Math
Home page
Source repository head: git clone
Uploaded Sun Jun 5 10:32:43 UTC 2016 by DominicSteinitz
Distributions Debian:, LTSHaskell:, NixOS:, Tumbleweed:
Downloads 8425 total (79 in the last 30 days)
0 []
Status Docs available [build log]
Last success reported on 2016-06-05 [all 1 reports]
Hackage Matrix CI





base-4.2 has an incompatible change in Data.Fixed (HasResolution)


mtl-2 has State, etc., as "type" rather than "newtype"


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees