I’ll try and address the points.

1. I proposed a low cost solution as advocated by Sven and Henrik about 2 years ago, that of using tf-random. This was rejected because apparently better RNGs might exist. Now as we all know there is no such thing as the best RNG. My reasoning for tf-random was that if it were good enough for QuickCheck then it would certainly be good enough for naive users. A case of the best driving out the good? Not that best exists in this case.

2. QuickCheck were bitten very hard!

3. 
Prelude> import System.Random
Prelude System.Random> let dieRoll = fst . randomR (1,6) . mkStdGen :: Int -> Int
Prelude System.Random> map dieRoll [1..20]
[6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6]

4. In addition to the problems adumbrated above, random also has a range
Prelude System.Random> newStdGen >>= return . genRange
(1,2147483562)

which makes it fail even testu01’s SmallCrush if used naively.

random *may* work in certain cases but I would strongly advise against using it when there are so many other packages without the above problems. I would also add that for e.g. MCMC it is often very hard to see if something is working or not working because of the Monte Carlo noise; something apparently working does not necessarily validate a particular RNG.

I can’t say I agree with the reasoning that it is better to carry on using something that could be giving incorrect results silently rather than breaking things so that people can take action.

Anyhow as I have already said I feel I have done my bit for the Haskell Community. I agree with Carter that this is out of scope for the Core Libraries Committee. I wish you all luck and will step down from being maintainer.

On 25 Jan 2017, at 11:26, libraries-request@haskell.org wrote:

Send Libraries mailing list submissions to
libraries@haskell.org

To subscribe or unsubscribe via the World Wide Web, visit
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
or, via email, send a message with subject or body 'help' to
libraries-request@haskell.org

You can reach the person managing the list at
libraries-owner@haskell.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Libraries digest..."


Today's Topics:

 1. Re: Selection Monad (Jakub Daniel)
 2. Add Zero and One to Data.Functor (mirroring V1, U1)
    (Baldur Blöndal)
 3. Re: Random Number Update (Sven Panne)
 4. Re: Random Number Update (Henning Thielemann)
 5. Re: Random Number Update (Andreas Abel)
 6. Re: Random Number Update (Henrik Nilsson)


----------------------------------------------------------------------

Message: 1
Date: Tue, 24 Jan 2017 17:23:58 +0000
From: Jakub Daniel <jakub.daniel@gmail.com>
To: Eric Mertens <emertens@gmail.com>
Cc: libraries@haskell.org
Subject: Re: Selection Monad
Message-ID:
<CACaCNTSj5T0GnGkWgk_VO8vaL4dZYao16QUTCvYMXvsAyUw1oQ@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Hi Eric,

Just to clarify, my question was not about endorsing another library but
rather extending the ones currently maintained by the committee with
definition of a notion closely related to what is already contained in the
libraries. It just so happens that Edward Kmett implemented the notion in a
standalone library. However to me it does not make much sense to include
ContT but not SelT (currently under the name Search) in the core libraries,
despite their connection. I understand if this does not change the answer
though.

Best Regards,
Jakub Daniel



On Tue, 24 Jan 2017 at 17:39 Eric Mertens <emertens@gmail.com> wrote:

Hi Jakub,

The core libraries committee helps maintain libraries that are already
critical to the Haskell ecosystem. It doesn’t select new libraries to be
recommended to users. It’s possible that the search package is a hidden gem
that more people need to know about. To accomplish that people will need to
write software using it, market it with blog posts, and bring it up in
discussions.

Best Regards,
Eric Mertens

On Jan 24, 2017, at 5:57 AM, Jakub Daniel <jakub.daniel@gmail.com> wrote:

Hello,

I apologize in case this is not the right place to bring this
question/proposal up. Some time ago I stumbled upon the Selection Monad [1]
(also referred to as Search from the search package on hackage). Its
relation to the Continuation Monad and the usefulness demonstrated in [1]
made me wonder whether it would be nice to include Selection Monad in the
core libraries along the Continuation Monad (in mtl and transformers) with
all the business of selections attaining continuations. I can imagine the
pattern to be too little recognised to justify such an addition, yet the
theoretical connection to the Continuation Monad seems to be an interesting
one and worth being addressed.

Best,

Jakub Daniel

[1] Jules Hedges. *Monad transformers for backtracking search*. In *Proceedings
of MSFP 2014. *https://arxiv.org/abs/1406.2058

_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20170124/630bc9cc/attachment-0001.html>

------------------------------

Message: 2
Date: Tue, 24 Jan 2017 19:17:31 +0000
From: Baldur Blöndal <baldurpet@gmail.com>
To: Haskell Libraries <libraries@haskell.org>
Subject: Add Zero and One to Data.Functor (mirroring V1, U1)
Message-ID:
<CAK9DwL8-6GdfPWza_sNpRfi5eQ+KE8H_0Wc0WCfAK9WrHEfv_A@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Deadline of 2 weeks.

Original discussion: ⁽¹⁾

data Zero a
data One  a = One

Same definitions as in ‘trivia’ package,⁽²⁾
if a consensus is reached we can update
the documentation for Free:⁽³⁾

“Free Zero” is isomorphic to Identity.
“Free One” is isomorphic to Maybe.

⁽¹⁾ https://ghc.haskell.org/trac/ghc/ticket/13177
⁽²⁾ https://hackage.haskell.org/package/trivia
⁽³⁾
https://hackage.haskell.org/package/free-4.12.4/docs/Control-Monad-Free.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20170124/3945e7ae/attachment-0001.html>

------------------------------

Message: 3
Date: Tue, 24 Jan 2017 20:45:04 +0100
From: Sven Panne <svenpanne@gmail.com>
To: Thomas Murphy <amindfv@gmail.com>
Cc: libraries <libraries@haskell.org>, dominic@steinitz.org
Subject: Re: Random Number Update
Message-ID:
<CANBN=ms6-tDjJE4x-QbR5DX862xg6cFeMpW-M0PD+mQog=YQHA@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

2017-01-24 18:33 GMT+01:00 <amindfv@gmail.com>:

Carter, can you outline how random v2 compares to v1?


Whatever will be done, I think it would be good to keep the 'random'
package alive, probably just by re-exporting one of the better RNGs,
perhaps with a thin shim to keep the API identical. Yes, this would somehow
"bless" one of the RNGs, but this is not important: The important thing is
avoiding breakage in the ecosystem, keeping tutorials, books etc. valid.
People who know what they are doing can easily pick the right RNG for their
needs and/or quickly adapt their code, but I guess for lots of stuff having
just *some* RNG under the traditional package name/module name is more than
enough.

Just my usual backwards-compatibility-rant... ;-)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20170124/e0d26476/attachment-0001.html>

------------------------------

Message: 4
Date: Tue, 24 Jan 2017 21:53:48 +0100 (CET)
From: Henning Thielemann <lemming@henning-thielemann.de>
To: Dominic Steinitz <dominic@steinitz.org>
Cc: libraries <libraries@haskell.org>
Subject: Re: Random Number Update
Message-ID: <alpine.DEB.2.02.1701242144080.7413@sputnik>
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed


On Tue, 24 Jan 2017, Dominic Steinitz wrote:

2. Most people do *not* use it. I believe
 https://hackage.haskell.org/package/mwc-random is a popular choice
 but developers are free to use e.g. Mersenne Twister, PCG
 (Permuted Congruential Generator), TF (ThreeFish) and many others.

I have used the plain old System.Random exclusively for years now and did 
not encounter any problems, but I also did not watch for them. I used 
System.Random for Markov chains, audio noise generation, randomized 
algorithmic music, board game computer opponents etc. I'd like to keep a 
default random generator for the many cases where I don't care about the 
precise algorithm. That said, I got used to some randomized synthesized 
sounds and randomized melodies such that I already noticed changes in the 
random generator implementation.


------------------------------

Message: 5
Date: Wed, 25 Jan 2017 11:43:29 +0100
From: Andreas Abel <abela@chalmers.se>
To: Henning Thielemann <lemming@henning-thielemann.de>, Haskell
Libraries <libraries@haskell.org>
Subject: Re: Random Number Update
Message-ID: <29c97717-2946-6b8d-f458-a495c74e9232@chalmers.se>
Content-Type: text/plain; charset="utf-8"; format=flowed

I got used to some randomized synthesized
sounds and randomized melodies such that I already noticed changes in
the random generator implementation.

Can't be very random, if you can get used to it, no?
:)  [Couldn't resist].

On 24.01.2017 21:53, Henning Thielemann wrote:

On Tue, 24 Jan 2017, Dominic Steinitz wrote:

2. Most people do *not* use it. I believe
 https://hackage.haskell.org/package/mwc-random is a popular choice
 but developers are free to use e.g. Mersenne Twister, PCG
 (Permuted Congruential Generator), TF (ThreeFish) and many others.

I have used the plain old System.Random exclusively for years now and
did not encounter any problems, but I also did not watch for them. I
used System.Random for Markov chains, audio noise generation, randomized
algorithmic music, board game computer opponents etc. I'd like to keep a
default random generator for the many cases where I don't care about the
precise algorithm. That said, I got used to some randomized synthesized
sounds and randomized melodies such that I already noticed changes in
the random generator implementation.
-- 
Andreas Abel  <><      Du bist der geliebte Mensch.

Department of Computer Science and Engineering
Chalmers and Gothenburg University, Sweden

andreas.abel@gu.se
http://www.cse.chalmers.se/~abela/


------------------------------

Message: 6
Date: Wed, 25 Jan 2017 11:44:49 +0000
From: Henrik Nilsson <Henrik.Nilsson@nottingham.ac.uk>
To: libraries@haskell.org
Subject: Re: Random Number Update
Message-ID: <58888FB1.8090300@exmail.nottingham.ac.uk>
Content-Type: text/plain; charset=UTF-8; format=flowed

Hi,

On 01/24/2017 07:45 PM, Sven Panne wrote:
Whatever will be done, I think it would be good to keep the 'random'
package alive, probably just by re-exporting one of the better RNGs,
perhaps with a thin shim to keep the API identical. Yes, this would
somehow "bless" one of the RNGs, but this is not important: The
important thing is avoiding breakage in the ecosystem, keeping
tutorials, books etc. valid. People who know what they are doing can
easily pick the right RNG for their needs and/or quickly adapt their
code, but I guess for lots of stuff having just *some* RNG under the
traditional package name/module name is more than enough.

I couldn't agree more.

Good (pseudo) random number generators are very important, and the
effort people like Dominic and Carter have put in is deeply appreciated.
Thanks!

However, a simplistic generator is much better than code breakage and
no generator. Users who don't pose the question about what
generator is used under the hood are unlikely to be bitten very hard by
a simplistic one. But they would be bitten hard if there isn't any or if
the API changes.

I've used the present one for games and the like, and they work OK for
that. I've also used them in an implementation of Metropolis-Hastings 
(for Bayesian inference) (albeit not that much) and I at
least broadly got the results I expected.

Best,

/Henrik







This message and any attachment are intended solely for the addressee
and may contain confidential information. If you have received this
message in error, please send it back to me, and immediately delete it. 

Please do not use, copy or disclose the information contained in this
message or in any attachment.  Any views or opinions expressed by the
author of this email do not necessarily reflect the views of the
University of Nottingham.

This message has been checked for viruses but the contents of an
attachment may still contain software viruses which could damage your
computer system, you are advised to perform your own checks. Email
communications with the University of Nottingham may be monitored as
permitted by UK legislation.



------------------------------

Subject: Digest Footer

_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries


------------------------------

End of Libraries Digest, Vol 161, Issue 36
******************************************
Dominic Steinitz
dominic@steinitz.org
http://idontgetoutmuch.wordpress.com