let Y := map f to let g := map x to f(x(x)); in g(g); FIB := map fib to map n to if n <= 1 then 1 else fib(n - 1) + fib(n - 2); FIBHELP := map fibhelp to map k,fn,fnm1 to if k = 0 then fn else fibhelp(k - 1, fn + fnm1, fn); pair := map x,y to cons(x, cons(y, null)); in let FFIB := map ffib to map n to if n = 0 then 1 else (Y(FIBHELP))(n - 1,1,1); in let ffib := Y(FFIB); in let FIBS := map fibs to map k,l to let fibk := ffib(k); in if 0 <= k then fibs(k - 1, cons(pair(k,fibk), l)) else l; in (Y(FIBS))(25, null)