`T` has a fixed point, then there exists some `X` such that `X <~~>
TX` (that's what it means to *have* a fixed point).
-<pre>
-let W = \x.T(xx) in
-let X = WW in
-X = WW = (\x.T(xx))W = T(WW) = TX
-</pre>
+<pre><code>
+let L = \x. T (x x) in
+let X = L L in
+X ≡ L L ≡ (\x. T (x x)) L ~~> T (L L) ≡ T X
+</code></pre>
Please slow down and make sure that you understand what justified each
of the equalities in the last line.
along to the continue-leftwards handler.
A **version 5** list encodes the kind of fold operation we're envisaging here, in
-the same way that v3 (and [v4](/advanced/#v4)) lists encoded the simpler fold operation.
+the same way that v3 (and [v4](/advanced/#index1h1)) lists encoded the simpler fold operation.
Roughly, the list `[5;4;3;2;1]` would look like this:
larger_computation
3. To extract tails efficiently, too, it'd be nice to fuse the apparatus developed
- in these v5 lists with the ideas from [v4](/advanced/#v4) lists.
+ in these v5 lists with the ideas from [v4](/advanced/#index1h1) lists.
But that also is left as an exercise.