<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Apr 7, 2014 at 4:18 PM, Nick Smallbone <span dir="ltr"><<a href="mailto:nicsma@chalmers.se" target="_blank">nicsma@chalmers.se</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On Monday 07 April, 2014 at 02:53 pm, Johan Tibell wrote:<br>
> > > Is StdGen so badly broken that it can't be fixed in a future version?<br>
> ><br>
> > The implementation of split is pretty broken. I suppose most people<br>
> > don't need split but, unfortunately, QuickCheck uses it heavily (the<br>
> > bind of the Gen monad splits the seed). I don't think anyone knows how<br>
> > to fix it, since there's no obvious reason why the current split should<br>
> > work at all!<br>
> ><br>
><br>
> Basic question: is the type of split wrong or just the implementation?<br>
<br>
</div>Just the implementation. However, another question (which I don't know<br>
the answer to) is whether the type of StdGen allows for a proper<br>
implementation of split.<br></blockquote><div><br></div><div>It would be nice if we could just fix StdGen and thus not require a whole new library. Will fixing StdGen make it even slower than it is today?</div><div><br></div>

<div>I believe the new generator used in QC uses some cartographic hash function. I wonder if SipHash has been considered, as it's both fast and has good randomness properties (but perhaps not for splitting). </div><div>

 </div></div></div></div>