content: -- The output of a certain stage of our compiler when run on its source,
  -- with these differences:
  --
  --  * Definitions of the basic combinators so this file compiles.
  --  (GHC won't like this file though, as the Scott encodings are unrolled,
  --  which messes up the types.)
  --  * A few syntax-based rewrites, e.g. Y(Kx) -> x.
  --  * Inlined a few functions to shrink the code further.
  --  * The original compiler produced a list of numbers and relied on the C
  --  program to print them as a comma-separated list along with a certain header
  --  and footer. This version of the compiler does all this itself.
  --
  -- Studying the code below may partially spoil this entry; please avert your
  -- eyes if you want to honestly reverse-engineer the compiler!
  
  y x = x(y x);
  s x y z = x z(y z);
  b x y z = x(y z);
  c x y z = x z y;
  r x y z = y z x;
  t x y = y x;
  k x _ = x;
  i x = x;
  
  f0 = b c t;
  f1 = y(b(b(s(b c t)))(s(b b(b c(b b)))));
  f2 = b c(r i(b f1(b(b(c b)) c)));
  f3 = b(c(t b)) f2;
  f4 = t k;
  f5 = b(r(k i))(s(b s (<=))(c (<=)));
  f6 = y(b(c(b s(b(b s)(b(b(b s))(r(b(r(b k k))(b b))(b b(b b b)))))))(b(c(b b(b s(b(b b)(b b)))))(b(r i)(b(b s)(b(b(b c))(b(b(b(b c)))(b(b(b(b(b c))))(b(b(b(b(b(b c)))))(b(b(b(c(b b(b c(b(b b) f5))))))(b(b c)(b(b(b c))(b c(b c)))))))))))));
  f7 = c(b f1(b (:))) k;
  f8 = b c(b(b c)(b(b f1)(b c(c f5))));
  f9 = b k t;
  f10 = b(b(b k))(b(b(b k))(b(b(b k))(b(b(b k))(b c t))));
  f11 = b k(b(b k)(b(b k)(b(b k) t)));
  f12 = b k(b k(b(b k)(b(b k) t)));
  f13 = b k(b k(b k(b(b k) t)));
  f14 = b(b k)(b(b k)(b(b k)(b(b k)(b c t))));
  f15 = b k(b k(b k k));
  f16 = c(t k);
  f17 = b f16(b f9);
  f18 = c(f1 (:));
  f19 = f1 f18 k;
  f20 = f5 0;
  f21 = f11 8;
  f22 = f11 9;
  f23 = f11 6;
  f24 = f11 5;
  f25 = f11 3;
  f26 = f11 2;
  f27 = b(b(b f12))(r f11 b);
  f28 = b(b(b(b f12)))(s(b b b)(r f11 b));
  f29 = y(b(b(r b))(s(b c(b(b s)(s(b c(b(b s)(s(b s(b(b s)(b(c b)(b(r b)(s(b c(b(c(r(b f12(b f11(f14 f23)))(t(f12(f11(f14(f14 f26 f22) f22))))))(r(f14 f26 f22) f27)))(r f23 f27))))))(b(b(b(r b)))(s(b b(b c(b(b c)(b(c(b s(r(b(b f11) f14)(b s(r(b f12 f11) b)))))(r(f14 f24)(b b f27))))))(b(b f13)))))))(b(b(r b))(s(b c(b(b s)(s(b c(b(b s)(s(b c(b(b s)(b(c b)(b(r(f11 f22))(r f26 f28)))))(b c(r(f14(f11 4))(b b f27))))))(r f26 f28))))(r f25 f28))))))(b(b(r b))(s(b c(b(b s)(s(b c(b(b s)(b(s(b s(r f12 b)))(b(b(b k))(b(b(b f13)) c)))))(r f24 f28))))(b(b f13))))));
  f30 = b(b(r b(r b(r b(r i(t b)))))(y(s(b c(b(r f11)(s(b c(b(c(t f15))(b f13)))(b(r b)(b(r(f29(f11 f21)))(b(r i)(b(r(b f11(f14 f21)))(r(f11 f22)))))))))(s(b c(b(b b)(b f29))) i))))(y(s(b s(b(b c)(r(b(r i)(r(b f13 f13)(b s(c(r k(b f1(b(r(f17 f11))(b(b b)(b(r(f9 f15))(c f6))))))))))(b s(b(b c)(b(b(r(b f13 f12)))(b(b(r(b f13 f11)))(b(b t)(b(b(b(b f12)))(r(c (:))(b b b)))))))))))(s(b s(b(b c)(b(b(b b))(b(b f14))))) i)) k);
  f31 = b(b f9) f0;
  f32 = c(b b(b f16(b t(c(b b(b f17(b t(b f0))))))));
  f33 = b f32 f31;
  f34 = b(b(r f9)) s;
  f35 = b f32(f33(k i));
  f36 = y(b(r(f31 k))(b(b f34)(s(b f32(f33 (:))))));
  f37 = s(b f32(f33 (:))) f36;
  f38 = b(f0 k)(b(b(r k))(r f31(b s(b b))));
  f39 = b(b(b c))(b(c(b s(b(b(b s(b b))) (<=))))(c (<=)));
  f40 = b f38 f5;
  f41 = b f32(f33 k);
  f42 = r(c f41)(b b(b b f35));
  f43 = b b(b f16(b(r k)(r f9(b s(r f4 b)))));
  f44 = c(b f43 f6);
  f45 = f37(f38(c f8 [58,33,35,36,37,38,42,43,46,47,60,61,62,63,64,92,94,124,45,126]));
  f46 = f36(f34(f38(r [32,10] f8))(f35(f35(f44 f45 [45,45])(f36(f38(b c(f5 10)))))(f40 10)));
  f47 = r f46 f41;
  f48 = b f47 f40;
  f49 = b(r(f31 k))(b(b f34)(s(b b(b f32(f32(f31 (:)))))(b(b f36)(c(b f35 f48)))));
  f50 = b(f33 f12)(b(f34(f35(f40 92)(f34(f38(r [92,39,34] f8))(f33(k 10)(f40 110)))))(b f38(b(b c) f5)));
  f51 = f38(f39 47 58);
  f52 = b f14 f13;
  f53 = f33(f1(b f14(f52 [58])) f21);
  f54 = r f48(b b f42);
  f55 = b f54 f48;
  f56 = f55 91 93;
  f57 = f38(s(b(b s(b b))(s(b(b s(b b))(f39 96 123))(f39 64 91)))(f5 95));
  f58 = [111,102];
  f59 = f47(f32(f33 (:) f57)(f36(f34(f34 f57 f51)(f40 39))));
  f60 = f43(b c(f6 f58)) f59;
  f61 = f47(f34 f45(f55 96 96 f60));
  f62 = f55 40 41;
  f63 = f34 f60(f62 f61);
  f64 = f1 f10;
  f65 = b(f34(f33 f13 f63))(b f53(b f56(r 44 f49)));
  f66 = f44 f61 [45,62];
  f67 = b(f55 123 125)(r 59 f49);
  f68 = f44 f59;
  f69 = f37 f60;
  f70 = b(f32(f33(s(b b f0)(b(b f30)(b(b(f52 k)) f10))) f63))(b(f32(f33(c f64)(f36 f60)))(f35(f48 61)));
  f71 = b(f33(f3 f14))(b f37(s(b f34(r(f34(f34(f54(f40 39) 39(f50 39))(f53(f54(f40 34) 34(f36(f50 34)))))(f33 f12(f33(f2(b(r 48)(b(b (-))(r i(b b(b (+)(r 10 (*))))))) 0)(f47(f37 f51)))))(b f34(s(b f34(s(b f34(s(b f34(s(b f32(b(f33(c(f1(c(b t(b(b f14)(c f10)))))))(b(f42(f68 [108,101,116])(f68 [105,110]))(b f67 f70)))) i))(s(b f32(b(f33(b(b(f3 f14)) (:)))(f42(f68 [99,97,115,101])(f68 f58))))(b f67(s(b f35 f65)(b(f32(f33(c f64)(f36 f60)))(f35 f66)))))))(f32(f33(c(f1 f10))(f42(f48 92) f66 f69)))))(b f62(s(b f34(r(f34(f33 f52 f61)(f31 i))(b f32(f33 t))))(f32(f33(b f14(b(f14 f25) f13)) f61)))))))) f65));
  f72 = b(b(t(k i)))(r(f0 0 k)(b f2(b c(b(b t)(b(b(s(b b(b f0((+) 1)))))(b(b (:))))))));
  f73 = r(b(b(b t))(b(b(b(s(b b f0))))(b(b(c(b b(b b f0))))(b(b(c(b b(b f0(r 2 (+))))))(b(c(b b (:))) (:))))))(b b b);
  f74 = b f4(r i(t b));
  f75 = r [47,42,10](b f18(b(f18 [35,100,101,102,105,110,101,32,120,32,92,10])(b(b(b f19) f7(r [44](s(r((:) 48) f20)(y(b(s(r i f20))(r(b (:)(b((+) 48)(r 10(s(b b (-))(r i(b s(b(b (*)) (/))))))))(b s(b(b b)(r(r 10 (/)) b)))))))))(r(b t(b(c(b b (:)))(r(b(f18(y(b(s(b b(r k f20)))(b(b(s (:)))(r(r 1 (-)) b))) 22 0))(f2(c (:)) k))(b b(b (:)(b(t(k i))(f1 k b)))))))(b(b(f2(b t(r(b(b t)(b(b(b f0))(b(b (:)) f0)))(b b(b c(y(b(s(b c(s(b c(s(b c(b(c(t b))(c f0)))(r 1 f73)))(s(b b(c f0))(b(c(r 9(b f1(b(c b)(b c(b(b c) f6)))))) f4)))))(s(b c(b(b c)(b(b b))))(b(r(b c(c f73)))(b(b b)(b(b c) c))))))))))(f0(f72(r((+) 16)(b b f0))((:) k(f74(f36 f61 [58,32,60,61,32,42,32,43,32,45,32,47]))))(f0 24 k))) f74)(f35 f46(f33 f19(f49(f34(f35(f54(f68 [100,97,116,97]) 61 f69)(f33(s(b f7(b t(b(s(b b f0))(b(b(b f30))(b(c(b s(b(b f64)(b(f2(r f13(b b f14))) f13))))(b(c f18)(f7 f4))))))) i)(f49(f32(f33 f0 f63)(f33(f72(k(c (:) k)))(f36(f34(f34(f62 f69)(f56 f69)) f60)))) 124)))(f33(c (:) k)(f70(y(s(b f32(b(f33(f2 t)) f71))(b f36(b(f32(f33(b c(b(b f14) f52)) f61)) f71))))))) 59))))))));
  