I got the impression Dmitry was using Haskell's standard RNG, not
Mersenne Twister. If so, then we'd get further improvements with MT,
but that's still a hit against Haskell, as I'd interpret it as meaning
that Haskell supplies as default a PRNG which costs noticeable
performance in order to provide guarantees that "ordinary" programs
don't need.

Paul.
Yes, I used standard RNG just made corrections from the second Daniel Fischer's post. My file is attached. Commented strings are from original version and next lines are from Daniel. (Note that "simulation" and "simulate" types depend on type of "dice").

Just compile with ghc --make -O2 histogram.hs
and run
histogram +RTS -s

As a pre-intermediate ;-) I just check some proposals...