I just did a construction of the integers assuming either sets or arrays. I could equally have used your list definition.
http://pastie.org/1397123 and http://news.ycombinator.com/item?id=2030649
I've very tempted to combine your work with this and then go on to define rationals and then the reals. The reals would be very interesting since it would be a sequence that takes an epsilon and gets a rational number that is close enough. It's kind of crazy to think that all these real numbers are infinite cauchy sequences.
If I define a real as function(eps) { return some_rational; } then I could define it piece_wise and say function mult_real(a,b) { return function(eps) { return a(eps/2) * b(eps/2); } }
[1] https://www.amazon.com/Numbers-Graduate-Mathematics-Heinz-Di...