Did you time the runs?<br><br>Non-lazy D version, compiled as -O -inline -release, and ran with pick(6, 11):<br><br>real    0m8.587s<br>user    0m8.497s<br>sys    0m0.012s<br><br><br>Lazy D version, compiled as -O -inline -release, and ran with pick(6, 11):<br>
<br>real    0m4.195s<br>user    0m4.168s<br>sys    0m0.008s<br><br><br>Haskell version, compiled as -O2, and ran with pick(6, 11):<br><br>real    0m0.159s<br>user    0m0.116s<br>sys    0m0.028s<br><br>