(define l
  ((lambda (f) (f (lambda (f) (lambda (z) (f (f (f (f (f z)))))))))
   (((lambda (y) (lambda (F) (F (lambda (x) (((y y) F) x)))))
     (lambda (y) (lambda (F) (F (lambda (x) (((y y) F) x))))))
    (lambda (f)
      (lambda (n)
        ((((((lambda (n)
               ((n (lambda (_) (lambda (t) (lambda (f) (f (lambda (void) void))))))
                (lambda (t) (lambda (f) (t (lambda (void) void))))))
             (((lambda (n)
                 (lambda (m)
                   ((m
                     (lambda (n)
                       (lambda (f)
                         (lambda (z)
                           (((n (lambda (g) (lambda (h) (h (g f)))))
                             (lambda (u) z))
                            (lambda (u) u))))))
                    n)))
               n)
              (lambda (f) (lambda (z) z))))
            (lambda (_)
              ((lambda (n)
                 ((n (lambda (_) (lambda (t) (lambda (f) (f (lambda (void) void))))))
                  (lambda (t) (lambda (f) (t (lambda (void) void))))))
               (((lambda (n)
                   (lambda (m)
                     ((m
                       (lambda (n)
                         (lambda (f)
                           (lambda (z)
                             (((n (lambda (g) (lambda (h) (h (g f)))))
                               (lambda (u) z))
                              (lambda (u) u))))))
                      n)))
                 (lambda (f) (lambda (z) z)))
                n))))
           (lambda (_) (lambda (t) (lambda (f) (f (lambda (void) void))))))
          (lambda (_) (lambda (f) (lambda (z) (f z)))))
         (lambda (_)
           (((lambda (n) (lambda (m) (lambda (f) (lambda (z) ((m (n f)) z))))) n)
            (f
             (((lambda (n)
                 (lambda (m)
                   ((m
                     (lambda (n)
                       (lambda (f)
                         (lambda (z)
                           (((n (lambda (g) (lambda (h) (h (g f)))))
                             (lambda (u) z))
                            (lambda (u) u))))))
                    n)))
               n)
              (lambda (f) (lambda (z) (f z)))))))))))))

(define (succ n) (+ n 1))

(define (natify church-numeral)
  ((church-numeral succ) 0))

(print (natify l))
