Module documentation for 0.3.0.2

Changes

0.5.1 (9 February 2017)

Re-export System.Random from Control.Monad.Random.{Lazy,Strict}
and hence also from Control.Monad.Random.

0.5 (3 January 2017)

This release has quite a few small additions as well as a big module
reorganization. However, thanks to module re-exports, most existing
code using the library should continue to work with no changes; the
major version bump reflects the large reorganization and my
inability to 100% guarantee that existing user code will not break.

The biggest changes that may be of interest to users of the library
include new lazy vs strict variants of the Rand monad; a new
MonadInterleave class which is a big improvement over
MonadSplit; new PrimMonad instances; and new random selection
functions like weighted, weightedMay, uniformMay, etc.. See
the list below for full details.

Although there was some discussion of generalizing MonadRandom to
work for a wider range of underlying generators
(see
#26,
#31, and
comments on this blog post),
I decided to punt on that for now. It seems rather complicated and
there
are
already good alternatives so
I decided to keep things simple for this release. I'm still open to
proposals for generalizing future releases.

fromList now raises an error when the total weight of elements
is zero.

Generalize the type of uniform to work over any Foldable.

Add new operations weighted, weightedMay, fromListMay, and
uniformMay. weighted is like fromList but generalized to
work over any Foldable. The May variants return a Maybe
result instead of raising an error.

New MonadInterleave class for random monads which can interleave
random generation using split. In some ways this is similar to
MonadSplit but much more useful.

Improved documentation.

0.4.2.3 (21 April 2016)

Mark Control.Monad.Random as Trustworthy.

0.4.2.2 (18 January 2016)

Allow transformers-0.5.

0.4.2.1 (16 January 2016)

Allow transformers-compat-0.5.

0.4.2 (16 January 2016)

Add MonadPlus and Alternative instances for RandT.

0.4.1 (20 November 2015)

Remove unnecessary Monad m constraint from liftRandT and
runRandT.

This should again technically require a major version bump, but I'm
not doing it this time in the interest of not being super annoying.
If this breaks something for you, just yell, and I will
deprecate this version and do a proper 0.5 release.