Make rigidify non-recursive
authorDavid Feuer <David.Feuer@gmail.com>
Wed, 11 Mar 2015 02:42:28 +0000 (22:42 -0400)
committerDavid Feuer <David.Feuer@gmail.com>
Wed, 11 Mar 2015 14:31:33 +0000 (10:31 -0400)
commit2562a659d8ca66cf7c0e814fc0e7f354a8261a42
tree73495fef52dc02f0bb80ce5152a962781e138baf
parentc2b20485f22202dc7227ef00ae28d706c8df8d4d
Make rigidify non-recursive

`rigidify` would previously call itself at most once before
producing a constructor. This made it somewhat hard to see that it
had no infinite loops, and increased the number of tests required.

Improve internal documentation.

Rename the small immediate indexing benchmark to make some kind
of sense. Add more and better immediate indexing benchmarks.

Benchmarks:

<*>/ix500/1000^2      -13.81%  1.40e-06
<*>/ix500000/1000^2   -38.91%  5.14e-06
<*>/ixBIG             -17.96%  1.61e-05
<*>/nf100/2500/rep     +0.23%  8.58e-03
<*>/nf100/2500/ff      -1.82%  2.37e-02
<*>/nf500/500/rep      +0.01%  8.48e-03
<*>/nf500/500/ff       -0.94%  2.46e-02
<*>/nf2500/100/rep     -0.46%  8.53e-03
<*>/nf2500/100/ff      -1.22%  2.45e-02
Data/Sequence.hs
benchmarks/Sequence.hs