The (aux machine) modules

Environments, the SC machine and the SECD machine

(aux machine env): environments for abstract machines

Tabled environments

Ported from on-scheme's commons.scm; the checks come from SC-machine-test.scm.

Implementation

(module
  (aux machine env)
  *
  (import
    scheme
    (chicken base)
    (chicken condition)
    (only (chicken memory representation) extend-procedure procedure-data)
    srfi-69
    (aux base)
    (aux commons)
    (aux tabling))
  (define extend
    (λ (E #!key (same? equal?))
       (let* ((lookup
                (λ (p E z)
                   (letcar&cdr
                     (((x y) p))
                     (cond ((same? x z) y) (else (E z))))))
              (extend₁
                (cond ((and (eq? same? equal?)
                            (not (eq? (procedure-data E) 'untabled)))
                       (λ (p E)
                          (letrec-tabled
                            ((E₁ H
                                 (lambda (z)
                                   (cond ((eq? tabled/get-hidden-hash-table z)
                                          (hash-table-merge
                                            (H)
                                            (E z #:fresh #t #:store #f)))
                                         (else (lookup p E z))))))
                            E₁)))
                      (else
                       (λ (p E)
                          (extend-procedure
                            (λ (z #!key (fresh (void)) (store (void)))
                               (cond ((eq? tabled/get-hidden-hash-table z)
                                      (E z #:fresh #t #:store #f))
                                     (else (lookup p E z))))
                            'untabled))))))
         (λ assocs (foldr extend₁ E assocs)))))
  (define E₀
    (λ (z #!key (fresh (void)) (store (void)))
       (cond ((eq? tabled/get-hidden-hash-table z) (make-hash-table))
             (else (void)))))
  (define E⁺
    (λ (z #!key (fresh (void)) (store (void)))
       (cond ((eq? tabled/get-hidden-hash-table z) (make-hash-table))
             ((atom? z) (handle-exceptions _ (void) (eval z)))
             (else (void)))))
  (define E->alist
    (λ (E)
       (hash-table-fold
         (E tabled/get-hidden-hash-table #:fresh #t #:store #f)
         (λ (k v acc) (cons `(,k unquote v) acc))
         '())))
  (define E-null? (=to? E₀ #:same? eq?)))

test/extend-lookup: pass

(define (test/extend-lookup _)
  (define E₁ ((extend E₀) '(a . 3)))
  (define E₂ ((extend E₁) '(b . 4)))
  (⊦= 3 (E₂ 'a))
  (⊦= 4 (E₂ 'b))
  (⊨ (void? (E₂ 'c)))
  (⊦= 3 (E₂ 'a))
  (⊦=/alist `(((c) unquote (void)) ((a) . 3) ((b) . 4)) (E->alist E₂))
  (define E₃ ((extend E₂) '(b . 0)))
  (⊦=/alist `(((c) unquote (void)) ((a) . 3) ((b) . 4)) (E->alist E₃))
  (⊦= 0 (E₃ 'b))
  (⊦=/alist `(((c) unquote (void)) ((a) . 3) ((b) . 0)) (E->alist E₃)))
((eta 0.001) (memory #(6291456 1916480 1048576)) (stdout "") (stderr ""))

test/E-null?: pass

(define (test/E-null? _)
  (define E₁ ((extend E₀) '(a . 3)))
  (⊨ (E-null? E₀))
  (⊭ (E-null? E₁)))
((eta 0.0) (memory #(6291456 1920144 1048576)) (stdout "") (stderr ""))

test/E⁺: pass

(define (test/E⁺ _)
  (define E ((extend E⁺) '(a . 3)))
  (⊦= 3 (E 'a))
  (⊦= 7 (E 7))
  (⊦= car (E 'car))
  (⊨ (void? (E 'an-unbound-identifier)))
  (⊨ (void? (E '(car x)))))
((eta 0.0) (memory #(6291456 1923832 1048576)) (stdout "") (stderr ""))

test/extend-many: pass

(define (test/extend-many _)
  (define E ((extend E₀) '(a . 1) '(b . 2) '(a . 3)))
  (⊦= 1 (E 'a))
  (⊦= 2 (E 'b))
  (define E/eq ((extend E₀ #:same? eq?) (cons "s" 1)))
  (⊨ (void? (E/eq (string #\s))))
  (define E/equal ((extend E₀) (cons "s" 1)))
  (⊦= 1 (E/equal (string #\s))))
((eta 0.0) (memory #(6291456 1930584 1048576)) (stdout "") (stderr ""))

test/extend-same?-untabled: pass

(define (test/extend-same?-untabled _)
  (define s "s")
  (define E/miss-first ((extend E₀ #:same? eq?) (cons s 1)))
  (⊨ (void? (E/miss-first (string #\s))))
  (⊦= 1 (E/miss-first s))
  (define E/hit-first ((extend E₀ #:same? eq?) (cons s 1)))
  (⊦= 1 (E/hit-first s))
  (⊨ (void? (E/hit-first (string #\s))))
  (define E/child ((extend ((extend E₀ #:same? eq?) (cons s 1))) '(a . 2)))
  (⊨ (void? (E/child (string #\s))))
  (⊦= 1 (E/child s))
  (⊦= 2 (E/child 'a))
  (⊦=/alist '() (E->alist E/child))
  (define E/tabled ((extend E₀) '(b . 3)))
  (define E/over ((extend E/tabled #:same? eq?) (cons s 1)))
  (⊦= 3 (E/over 'b))
  (⊦=/alist '(((b) . 3)) (E->alist E/over)))
((eta 0.0) (memory #(6291456 1909600 1048576)) (stdout "") (stderr ""))

(aux machine sc): the SC machine

The SC machine

Ported from on-scheme's SC-machine.scm.

Implementation

(module
  (aux machine sc)
  *
  (import
    scheme
    (chicken base)
    (chicken format)
    (aux base)
    (aux commons)
    (aux machine env))
  (define %check
    (λ (who pred? v)
       (cond ((pred? v) v) (else (error who "wrong field type" v)))))
  (define-record %Id identifier)
  (define-record %Comb rator rand)
  (define Id (λ (identifier) (make-%Id (%check 'Id symbol? identifier))))
  (define Id? %Id?)
  (define Id-identifier %Id-identifier)
  (define combination? (λ (c) (or (%Id? c) (%Comb? c))))
  (define Comb
    (λ (rator rand)
       (make-%Comb
         (%check 'Comb combination? rator)
         (%check 'Comb combination? rand))))
  (define Comb? %Comb?)
  (define Comb-rator %Comb-rator)
  (define Comb-rand %Comb-rand)
  (set-record-printer! %Id (λ (c out) (format out "~a" (%Id-identifier c))))
  (set-record-printer!
    %Comb
    (λ (c out) (format out "(~a ~a)" (%Comb-rator c) (%Comb-rand c))))
  (define curryfy
    (let1 (C (λ (c) (cond ((list? c) (curryfy c)) (else (Id c)))))
          (foldl1 (λ (acc c) (Comb acc (C c))) #:H₀ C)))
  (define value
    (λ (E)
       (rec V
            (λ (c)
               (cond ((%Id? c) (E (%Id-identifier c)))
                     ((%Comb? c) ((V (%Comb-rator c)) (V (%Comb-rand c))))
                     (else (error 'value "not a combination" c)))))))
  (define-record status S C)
  (define dbind/status (λ (recv) (λ (s) (recv s (status-S s) (status-C s)))))
  (set-record-printer!
    status
    (λ (s out)
       (let1 (P (dbind/status (λ (s S C) (format out "(~a ~a)" S C)))) (P s))))
  (define →/interpreted
    (let* ((sym/apply (gensym 'apply)) (is-apply? (=to? sym/apply)))
      (λ (E)
         (dbind/status
           (λ (s S C)
              (cond ((null? C) s)
                    (else
                     (match1/first
                       ((,C₀ unquote C₊) C)
                       (cond ((is-apply? C₀)
                              (match1/first
                                ((,f ,y unquote S₊) S)
                                (make-status (cons (f y) S₊) C₊)))
                             ((%Id? C₀)
                              (let1 (stack (cons (E (%Id-identifier C₀)) S))
                                    (make-status stack C₊)))
                             ((%Comb? C₀)
                              (let* ((cmds (list (%Comb-rand C₀) (%Comb-rator C₀) sym/apply))
                                     (control (append cmds C₊)))
                                (make-status S control)))
                             (else
                              (error '→/interpreted "not a combination" C₀)))))))))))
  (define-record %Load selector)
  (define-record %Apply)
  (define Load (λ (selector) (make-%Load (%check 'Load procedure? selector))))
  (define Load? %Load?)
  (define Load-selector %Load-selector)
  (define Apply make-%Apply)
  (define Apply? %Apply?)
  (define instruction? (λ (i) (or (%Load? i) (%Apply? i))))
  (set-record-printer!
    %Load
    (λ (i out) (format out "(Load ~a)" ((%Load-selector i) (gensym)))))
  (set-record-printer! %Apply (λ (i out) (format out "Apply")))
  (define compile
    (λ (E)
       (rec C
            (λ (c)
               (cond ((%Id? c) (list (Load (K (E (%Id-identifier c))))))
                     ((%Comb? c)
                      (append
                        (C (%Comb-rand c))
                        (C (%Comb-rator c))
                        (list (Apply))))
                     (else (error 'compile "not a combination" c)))))))
  (define →/compiled
    (λ (E)
       (dbind/status
         (λ (s S C)
            (cond ((null? C) s)
                  (else
                   (letcar&cdr
                     (((C₀ C₊) C))
                     (cond ((%Load? C₀)
                            (let1 (stack (cons ((%Load-selector C₀) E) S))
                                  (make-status stack C₊)))
                           ((%Apply? C₀)
                            (match1/first
                              ((,f ,y unquote S₊) S)
                              (make-status (cons (f y) S₊) C₊)))
                           (else
                            (error '→/compiled "not an instruction" C₀)))))))))))

test/value: pass

(define (test/value _)
  (⊦= 3 ((value E₂) (Id 'a)))
  (⊦= 4
      ((value ((extend E₂) `(add1 unquote add1))) (Comb (Id 'add1) (Id 'a)))))
((eta 0.0) (memory #(6291456 2055728 1048576)) (stdout "") (stderr ""))

test/curryfy: pass

(define (test/curryfy _)
  (⊦= (Comb (Comb (Id 'p)
                  (Comb (Comb (Id 'm) (Comb (Comb (Id 'p) (Id 'a)) (Id 'b)))
                        (Id 'c)))
            (Comb (Comb (Id 'f) (Id 'a)) (Id 'c)))
      (curryfy '(p (m (p a b) c) (f a c))))
  (⊦= (Comb (Comb (Id 'p) (Comb (Comb (Id 'f) (Id 'a)) (Id 'c)))
            (Comb (Comb (Id 'm) (Id 'c))
                  (Comb (Comb (Id 'p) (Id 'b)) (Id 'a))))
      (curryfy '(p (f a c) (m c (p b a)))))
  (⊦= (Comb (Comb (Id 'p) (Id 'a)) (Id 'b)) (curryfy '((p a) b)))
  (⊦= (curryfy '(p a b)) (curryfy '((p a) b)))
  (⊦= (Comb (Comb (Comb (Id 'm) (Id 'c)) (Comb (Id 'f) (Id 'a))) (Id 'b))
      (curryfy '((m c (f a)) b))))
((eta 0.0) (memory #(6291456 2056912 1048576)) (stdout "") (stderr ""))

test/printer: pass

(define (test/printer _)
  (⊦= "((p a) b)" (with-output-to-string (τ (display (curryfy '(p a b))))))
  (⊦= "((p ((f a) c)) ((m c) ((p b) a)))"
      (with-output-to-string
        (τ (display (curryfy '(p (f a c) (m c (p b a)))))))))
((eta 0.0) (memory #(6291456 2058176 1048576)) (stdout "") (stderr ""))

test/traces: pass

(define (test/traces _)
  (let* ((p (λ (a) (λ (b) (+ a b))))
         (m (λ (a) (λ (b) (- a b))))
         (f (λ (a) (λ (b) (+ (² a) (² b)))))
         (control (curryfy '(p (m (p a b) c) (f a c))))
         (control₁ (curryfy '(p (f a c) (m c (p b a)))))
         (E ((extend E₀)
             `(a . 1)
             `(b . 2)
             `(c . 3)
             `(p unquote p)
             `(m unquote m)
             `(f unquote f)))
         (→/interpreted (rtc (→/interpreted E)))
         (→/compiled (rtc (→/compiled E)))
         (F (λ (s) (format #t "~a\n" s))))
    (⊦=/normalised
      "(() (((p ((m ((p a) b)) c)) ((f a) c))))\n(() (((f a) c) (p ((m ((p a) b)) c)) apply0))\n(() (c (f a) apply0 (p ((m ((p a) b)) c)) apply0))\n((3) ((f a) apply0 (p ((m ((p a) b)) c)) apply0))\n((3) (a f apply0 apply0 (p ((m ((p a) b)) c)) apply0))\n((1 3) (f apply0 apply0 (p ((m ((p a) b)) c)) apply0))\n((#<procedure (f a216)> 1 3) (apply0 apply0 (p ((m ((p a) b)) c)) apply0))\n((#<procedure (f_671 b217)> 3) (apply0 (p ((m ((p a) b)) c)) apply0))\n((10) ((p ((m ((p a) b)) c)) apply0))\n((10) (((m ((p a) b)) c) p apply0 apply0))\n((10) (c (m ((p a) b)) apply0 p apply0 apply0))\n((3 10) ((m ((p a) b)) apply0 p apply0 apply0))\n((3 10) (((p a) b) m apply0 apply0 p apply0 apply0))\n((3 10) (b (p a) apply0 m apply0 apply0 p apply0 apply0))\n((2 3 10) ((p a) apply0 m apply0 apply0 p apply0 apply0))\n((2 3 10) (a p apply0 apply0 m apply0 apply0 p apply0 apply0))\n((1 2 3 10) (p apply0 apply0 m apply0 apply0 p apply0 apply0))\n((#<procedure (p a210)> 1 2 3 10) (apply0 apply0 m apply0 apply0 p apply0 apply0))\n((#<procedure (f_657 b211)> 2 3 10) (apply0 m apply0 apply0 p apply0 apply0))\n((3 3 10) (m apply0 apply0 p apply0 apply0))\n((#<procedure (m a213)> 3 3 10) (apply0 apply0 p apply0 apply0))\n((#<procedure (f_664 b214)> 3 10) (apply0 p apply0 apply0))\n((0 10) (p apply0 apply0))\n((#<procedure (p a210)> 0 10) (apply0 apply0))\n((#<procedure (f_657 b211)> 10) (apply0))\n((10) ())\n"
      (with-output-to-string
        (τ ((fmap F) (→/interpreted (make-status '() (list control)))))))
    (⊦=/normalised
      "(() ((Load 3) (Load 1) (Load #<procedure (f a216)>) Apply Apply (Load 3) (Load 2) (Load 1) (Load #<procedure (p a210)>) Apply Apply (Load #<procedure (m a213)>) Apply Apply (Load #<procedure (p a210)>) Apply Apply))\n((3) ((Load 1) (Load #<procedure (f a216)>) Apply Apply (Load 3) (Load 2) (Load 1) (Load #<procedure (p a210)>) Apply Apply (Load #<procedure (m a213)>) Apply Apply (Load #<procedure (p a210)>) Apply Apply))\n((1 3) ((Load #<procedure (f a216)>) Apply Apply (Load 3) (Load 2) (Load 1) (Load #<procedure (p a210)>) Apply Apply (Load #<procedure (m a213)>) Apply Apply (Load #<procedure (p a210)>) Apply Apply))\n((#<procedure (f a216)> 1 3) (Apply Apply (Load 3) (Load 2) (Load 1) (Load #<procedure (p a210)>) Apply Apply (Load #<procedure (m a213)>) Apply Apply (Load #<procedure (p a210)>) Apply Apply))\n((#<procedure (f_671 b217)> 3) (Apply (Load 3) (Load 2) (Load 1) (Load #<procedure (p a210)>) Apply Apply (Load #<procedure (m a213)>) Apply Apply (Load #<procedure (p a210)>) Apply Apply))\n((10) ((Load 3) (Load 2) (Load 1) (Load #<procedure (p a210)>) Apply Apply (Load #<procedure (m a213)>) Apply Apply (Load #<procedure (p a210)>) Apply Apply))\n((3 10) ((Load 2) (Load 1) (Load #<procedure (p a210)>) Apply Apply (Load #<procedure (m a213)>) Apply Apply (Load #<procedure (p a210)>) Apply Apply))\n((2 3 10) ((Load 1) (Load #<procedure (p a210)>) Apply Apply (Load #<procedure (m a213)>) Apply Apply (Load #<procedure (p a210)>) Apply Apply))\n((1 2 3 10) ((Load #<procedure (p a210)>) Apply Apply (Load #<procedure (m a213)>) Apply Apply (Load #<procedure (p a210)>) Apply Apply))\n((#<procedure (p a210)> 1 2 3 10) (Apply Apply (Load #<procedure (m a213)>) Apply Apply (Load #<procedure (p a210)>) Apply Apply))\n((#<procedure (f_657 b211)> 2 3 10) (Apply (Load #<procedure (m a213)>) Apply Apply (Load #<procedure (p a210)>) Apply Apply))\n((3 3 10) ((Load #<procedure (m a213)>) Apply Apply (Load #<procedure (p a210)>) Apply Apply))\n((#<procedure (m a213)> 3 3 10) (Apply Apply (Load #<procedure (p a210)>) Apply Apply))\n((#<procedure (f_664 b214)> 3 10) (Apply (Load #<procedure (p a210)>) Apply Apply))\n((0 10) ((Load #<procedure (p a210)>) Apply Apply))\n((#<procedure (p a210)> 0 10) (Apply Apply))\n((#<procedure (f_657 b211)> 10) (Apply))\n((10) ())\n"
      (with-output-to-string
        (τ ((fmap F) (→/compiled (make-status '() ((compile E) control)))))))
    (⊦=/normalised
      "(() (((p ((f a) c)) ((m c) ((p b) a)))))\n(() (((m c) ((p b) a)) (p ((f a) c)) apply0))\n(() (((p b) a) (m c) apply0 (p ((f a) c)) apply0))\n(() (a (p b) apply0 (m c) apply0 (p ((f a) c)) apply0))\n((1) ((p b) apply0 (m c) apply0 (p ((f a) c)) apply0))\n((1) (b p apply0 apply0 (m c) apply0 (p ((f a) c)) apply0))\n((2 1) (p apply0 apply0 (m c) apply0 (p ((f a) c)) apply0))\n((#<procedure (p a210)> 2 1) (apply0 apply0 (m c) apply0 (p ((f a) c)) apply0))\n((#<procedure (f_657 b211)> 1) (apply0 (m c) apply0 (p ((f a) c)) apply0))\n((3) ((m c) apply0 (p ((f a) c)) apply0))\n((3) (c m apply0 apply0 (p ((f a) c)) apply0))\n((3 3) (m apply0 apply0 (p ((f a) c)) apply0))\n((#<procedure (m a213)> 3 3) (apply0 apply0 (p ((f a) c)) apply0))\n((#<procedure (f_664 b214)> 3) (apply0 (p ((f a) c)) apply0))\n((0) ((p ((f a) c)) apply0))\n((0) (((f a) c) p apply0 apply0))\n((0) (c (f a) apply0 p apply0 apply0))\n((3 0) ((f a) apply0 p apply0 apply0))\n((3 0) (a f apply0 apply0 p apply0 apply0))\n((1 3 0) (f apply0 apply0 p apply0 apply0))\n((#<procedure (f a216)> 1 3 0) (apply0 apply0 p apply0 apply0))\n((#<procedure (f_671 b217)> 3 0) (apply0 p apply0 apply0))\n((10 0) (p apply0 apply0))\n((#<procedure (p a210)> 10 0) (apply0 apply0))\n((#<procedure (f_657 b211)> 0) (apply0))\n((10) ())\n"
      (with-output-to-string
        (τ ((fmap F) (→/interpreted (make-status '() (list control₁)))))))
    (let ((t (→/interpreted (make-status '() (list control))))
          (t/compiled (→/compiled (make-status '() ((compile E) control))))
          (t₁ (→/interpreted (make-status '() (list control₁)))))
      (⊦= 26 (length t))
      (⊦= 18 (length t/compiled))
      (⊦= 26 (length t₁))
      (⊦= '((10) ()) (let1 (s (last* t)) (list (status-S s) (status-C s))))
      (⊦= '((10) ())
          (let1 (s (last* t/compiled)) (list (status-S s) (status-C s))))
      (⊦= '((10) ()) (let1 (s (last* t₁)) (list (status-S s) (status-C s))))
      (let1 (s (last* t)) (⊨ (eq? s ((→/interpreted-step E) s)))))))
((eta 0.006) (memory #(12582912 2117648 1048576)) (stdout "") (stderr ""))

test/strict-constructors: pass

(define (test/strict-constructors _)
  (⊨ (condition-case (begin (Id "a") #f) ((exn) #t)))
  (⊨ (condition-case (begin (Comb 'a (Id 'b)) #f) ((exn) #t)))
  (⊨ (condition-case (begin (Load 3) #f) ((exn) #t)))
  (⊨ (condition-case (begin ((value E₀) 'a) #f) ((exn) #t))))
((eta 0.0) (memory #(12582912 2128344 1048576)) (stdout "") (stderr ""))

(aux machine secd): the SECD machine

The SECD machine

Ported from on-scheme's SECD-machine.scm.

Implementation

(module
  (aux machine secd)
  *
  (import
    scheme
    (chicken base)
    (chicken format)
    (chicken string)
    (only srfi-1 list-index last drop-right)
    (aux base)
    (aux commons)
    (aux machine env))
  (define %check
    (λ (who pred? v)
       (cond ((pred? v) v) (else (error who "wrong field type" v)))))
  (define-record %Id identifier)
  (define-record %Lambda var body)
  (define-record %Comb rator rand)
  (define-record %If question answer otherwise)
  (define-record %J)
  (define expression?
    (λ (e) (or (%Id? e) (%Lambda? e) (%Comb? e) (%If? e) (%J? e))))
  (define Id (λ (identifier) (make-%Id (%check 'Id symbol? identifier))))
  (define Lambda
    (λ (var body)
       (make-%Lambda
         (%check 'Lambda symbol? var)
         (%check 'Lambda expression? body))))
  (define Comb
    (λ (rator rand)
       (make-%Comb
         (%check 'Comb expression? rator)
         (%check 'Comb expression? rand))))
  (define If
    (λ (q a o)
       (make-%If
         (%check 'If expression? q)
         (%check 'If expression? a)
         (%check 'If expression? o))))
  (define J make-%J)
  (define-many (Id? Lambda? Comb? If? J?) (%Id? %Lambda? %Comb? %If? %J?))
  (set-record-printer! %Id (λ (e out) (format out "~a" (%Id-identifier e))))
  (set-record-printer!
    %Lambda
    (λ (e out) (format out "(λ (~a) ~a)" (%Lambda-var e) (%Lambda-body e))))
  (set-record-printer!
    %Comb
    (λ (e out) (format out "(~a ~a)" (%Comb-rator e) (%Comb-rand e))))
  (set-record-printer!
    %If
    (λ (e out)
       (format
         out
         "(if ~a ~a ~a)"
         (%If-question e)
         (%If-answer e)
         (%If-otherwise e))))
  (set-record-printer! %J (λ (e out) (format out "J")))
  (define curryfy
    (λ (sexp)
       (let ((is-Y? (=to? 'Y)) (is-J? (=to? 'J)))
         (cond ((is-J? sexp) (J))
               ((is-Y? sexp)
                (let* ((f (gensym))
                       (h `(λ (g) (,f (λ (x) ((g g) x)))))
                       (Y `(λ (,f) (,h ,h))))
                  (curryfy Y)))
               ((symbol? sexp) (Id sexp))
               ((list? sexp)
                (match/first
                  sexp
                  ((cond (,question ,answer) (else ,otherwise))
                   (If (curryfy question)
                       (curryfy answer)
                       (curryfy otherwise)))
                  ((cond (,question ,answer) unquote clauses)
                   (If (curryfy question)
                       (curryfy answer)
                       (curryfy `(cond ,@clauses))))
                  ((λ (,x) ,body) (Lambda x (curryfy body)))
                  (((λ (,x unquote ys) ,body) ⊣ (pair? ys))
                   (Lambda x (curryfy `(λ ,ys ,body))))
                  ((λ . _) (error "match error for" sexp))
                  ((,rator ,rand) (Comb (curryfy rator) (curryfy rand)))
                  (((,rator ,rand unquote rands) ⊣ (pair? rands))
                   (Comb (curryfy (drop-right sexp 1)) (curryfy (last sexp))))
                  (else (error "match error for" sexp))))
               (else (error "cond error for:" sexp))))))
  (define value
    (λ (E)
       (λ (e)
          (letrec ((V (λ (e)
                         (cond ((%Id? e) (E (%Id-identifier e)))
                               ((%Lambda? e)
                                (let ((var (%Lambda-var e)) (body (%Lambda-body e)))
                                  (λ (x)
                                     (let1 (E₁ ((extend E) `(,var unquote x)))
                                           ((value E₁) body)))))
                               ((%Comb? e)
                                ((V (%Comb-rator e)) (V (%Comb-rand e))))
                               ((%If? e)
                                (if (V (%If-question e))
                                  (V (%If-answer e))
                                  (V (%If-otherwise e))))
                               ((%J? e) (error "((value E) J) not implemented"))
                               (else (error 'value "not an expression" e))))))
            (V e)))))
  (define-record status S E C D)
  (define status-init (λ (E C) (make-status '() E C (void))))
  (define dbind/status
    (λ (recv)
       (λ (s) (recv s (status-S s) (status-E s) (status-C s) (status-D s)))))
  (define status-printer
    (λ (indent)
       (dbind/status
         (λ (s S E C D)
            (let* ((indents (make-string indent #\space))
                   (L (fmap (λ (e)
                               (string-append
                                 (make-string (+ indent 4) #\space)
                                 (to-string e)))))
                   (P (λ (sym l #!key (indents indents))
                         (match/first
                           l
                           (() (format #f "~a(~a ~a)" indents sym '()))
                           ((,l₀) (format #f "~a(~a (~a))" indents sym l₀))
                           ((,l₀ unquote l₊)
                            (let1 (rest (string-intersperse (L l₊) "\n"))
                                  (format #f "~a(~a (~a\n~a))" indents sym l₀ rest))))))
                   (Ss (P "S" S #:indents ""))
                   (Es (P "E" (if (list? E) E (E->alist E))))
                   (Cs (P "C" C))
                   (Ds (cond/λ
                         D
                         (void? (K (format #f "~a(D ~a)" indents D)))
                         (else (K (format
                                    #f
                                    "~a(~a)"
                                    indents
                                    ((status-printer (add1 indent)) D)))))))
              (format #f "~a\n~a\n~a\n~a" Ss Es Cs Ds))))))
  (set-record-printer!
    status
    (λ (s out) (format out "~a" ((status-printer 0) s))))
  (define pop-dump
    (λ (S D)
       ((dbind/status
          (λ (_ S₁ E₁ C₁ D₁) (make-status (cons (car S) S₁) E₁ C₁ D₁)))
        D)))
  (define-record closure C₁ var E)
  (define dbind/closure
    (λ (recv) (λ (c) (recv c (closure-C₁ c) (closure-var c) (closure-E c)))))
  (set-record-printer!
    closure
    (λ (c out)
       (let1 (P (dbind/closure
                  (λ (_ C₁ var E) (format out "[~a ~a ~a]" C₁ var E))))
             (P c))))
  (define →/interpreted
    (let* ((sym/apply (gensym 'apply)) (is-apply? (=to? sym/apply)))
      (dbind/status
        (λ (s S E C D)
           (cond ((and (null? C) (void? D)) s)
                 ((null? C) (pop-dump S D))
                 (else
                  (match1/first
                    ((,C₀ unquote C₊) C)
                    (cond ((is-apply? C₀)
                           (match1/first
                             ((,f ,y unquote S₊) S)
                             (cond/λ
                               f
                               (closure?
                                 (dbind/closure
                                   (λ (_ C₁ j E₁)
                                      (let ((S₂ '())
                                            (E₂ ((extend E₁) `(,j unquote y)))
                                            (C₂ (list C₁))
                                            (D₂ (make-status S₊ E C₊ D)))
                                        (make-status S₂ E₂ C₂ D₂)))))
                               (else (K (make-status (cons (f y) S₊) E C₊ D))))))
                          ((%Id? C₀)
                           (let1 (S₁ (cons (E (%Id-identifier C₀)) S))
                                 (make-status S₁ E C₊ D)))
                          ((%Lambda? C₀)
                           (let1 (c (make-closure
                                      (%Lambda-body C₀)
                                      (%Lambda-var C₀)
                                      E))
                                 (make-status (cons c S) E C₊ D)))
                          ((%Comb? C₀)
                           (let* ((cmds (list (%Comb-rand C₀) (%Comb-rator C₀) sym/apply))
                                  (C₁ (append cmds C₊)))
                             (make-status S E C₁ D)))
                          (else
                           (error '→/interpreted "no transition for" C₀))))))))))
  (define-record %Id₋ id)
  (define-record %Id₊ index)
  (define-record %Lambda₊ body)
  (define-record %Comb₊ rator rand)
  (define-record %If₊ question answer otherwise)
  (define-record %J₊)
  (define de-bruijn?
    (λ (e)
       (or (%Id₋? e) (%Id₊? e) (%Lambda₊? e) (%Comb₊? e) (%If₊? e) (%J₊? e))))
  (define Id₋ (λ (id) (make-%Id₋ (%check 'Id₋ symbol? id))))
  (define Id₊ (λ (index) (make-%Id₊ (%check 'Id₊ number? index))))
  (define Lambda₊ (λ (body) (make-%Lambda₊ (%check 'Lambda₊ de-bruijn? body))))
  (define Comb₊
    (λ (rator rand)
       (make-%Comb₊
         (%check 'Comb₊ de-bruijn? rator)
         (%check 'Comb₊ de-bruijn? rand))))
  (define If₊
    (λ (q a o)
       (make-%If₊
         (%check 'If₊ de-bruijn? q)
         (%check 'If₊ de-bruijn? a)
         (%check 'If₊ de-bruijn? o))))
  (define J₊ make-%J₊)
  (define-many
    (Id₋? Id₊? Lambda₊? Comb₊? If₊? J₊?)
    (%Id₋? %Id₊? %Lambda₊? %Comb₊? %If₊? %J₊?))
  (set-record-printer! %Id₋ (λ (e out) (format out "~a" (%Id₋-id e))))
  (set-record-printer! %Id₊ (λ (e out) (format out "~a" (%Id₊-index e))))
  (set-record-printer!
    %Lambda₊
    (λ (e out) (format out "(λ ~a)" (%Lambda₊-body e))))
  (set-record-printer!
    %Comb₊
    (λ (e out) (format out "(~a ~a)" (%Comb₊-rator e) (%Comb₊-rand e))))
  (set-record-printer!
    %If₊
    (λ (e out)
       (format
         out
         "(if ~a ~a ~a)"
         (%If₊-question e)
         (%If₊-answer e)
         (%If₊-otherwise e))))
  (set-record-printer! %J₊ (λ (e out) (format out "J")))
  (define expression->de-bruijn
    (λ (e)
       (letrec ((deB (λ (e F)
                        (let1 (position (λ (v) (list-index (=to? v) F)))
                              (cond ((%Id? e)
                                     (let1 (i (%Id-identifier e))
                                           (cond/λ
                                             (position i)
                                             (number? (λ (p) (Id₊ p)))
                                             (else (K (Id₋ i))))))
                                    ((%Lambda? e)
                                     (Lambda₊
                                       (deB (%Lambda-body e) (cons (%Lambda-var e) F))))
                                    ((%Comb? e)
                                     (Comb₊ (deB (%Comb-rator e) F)
                                            (deB (%Comb-rand e) F)))
                                    ((%If? e)
                                     (If₊ (deB (%If-question e) F)
                                          (deB (%If-answer e) F)
                                          (deB (%If-otherwise e) F)))
                                    ((%J? e) (J₊))
                                    (else
                                     (error 'expression->de-bruijn
                                            "not an expression"
                                            e)))))))
         (deB e '()))))
  (define value₊
    (λ (E)
       (λ (e)
          (letrec ((deB (λ (e F)
                           (cond ((%Id₋? e) (E (%Id₋-id e)))
                                 ((%Id₊? e) (list-ref F (%Id₊-index e)))
                                 ((%Lambda₊? e)
                                  (λ (y) (deB (%Lambda₊-body e) (cons y F))))
                                 ((%Comb₊? e)
                                  ((deB (%Comb₊-rator e) F)
                                   (deB (%Comb₊-rand e) F)))
                                 ((%If₊? e)
                                  (if (deB (%If₊-question e) F)
                                    (deB (%If₊-answer e) F)
                                    (deB (%If₊-otherwise e) F)))
                                 ((%J₊? e)
                                  (error "((value₊ E) J) not implemented"))
                                 (else (error 'value₊ "not a de Bruijn term" e))))))
            (deB e '())))))
  (define-record %Load selector)
  (define-record %Apply)
  (define-record %Position index)
  (define-record %Position&Apply index)
  (define-record %Closure control)
  (define-record %Enter)
  (define-record %Exit)
  (define-record %Test answer otherwise)
  (define-record %Jump)
  (define instruction?
    (λ (i)
       (or (%Load? i)
           (%Apply? i)
           (%Position? i)
           (%Position&Apply? i)
           (%Closure? i)
           (%Enter? i)
           (%Exit? i)
           (%Test? i)
           (%Jump? i))))
  (define Load (λ (selector) (make-%Load (%check 'Load procedure? selector))))
  (define Apply make-%Apply)
  (define Position
    (λ (index) (make-%Position (%check 'Position number? index))))
  (define Position&Apply
    (λ (index) (make-%Position&Apply (%check 'Position&Apply number? index))))
  (define Closure
    (λ (control) (make-%Closure (%check 'Closure list? control))))
  (define Enter make-%Enter)
  (define Exit make-%Exit)
  (define Test
    (λ (answer otherwise)
       (make-%Test
         (%check 'Test list? answer)
         (%check 'Test list? otherwise))))
  (define Jump make-%Jump)
  (define-many
    (Load? Apply? Position? Position&Apply? Closure? Enter? Exit? Test? Jump?)
    (%Load?
      %Apply?
      %Position?
      %Position&Apply?
      %Closure?
      %Enter?
      %Exit?
      %Test?
      %Jump?))
  (set-record-printer!
    %Load
    (λ (i out) (format out "(Load ~a)" ((%Load-selector i) identity))))
  (set-record-printer! %Apply (λ (i out) (format out "Apply")))
  (set-record-printer! %Enter (λ (i out) (format out "Enter")))
  (set-record-printer! %Exit (λ (i out) (format out "Exit")))
  (set-record-printer!
    %Test
    (λ (i out)
       (format out "(Test ~a ~a)" (%Test-answer i) (%Test-otherwise i))))
  (set-record-printer!
    %Position
    (λ (i out) (format out "(Position ~a)" (%Position-index i))))
  (set-record-printer!
    %Position&Apply
    (λ (i out) (format out "(Position&Apply ~a)" (%Position&Apply-index i))))
  (set-record-printer!
    %Closure
    (λ (i out) (format out "(Closure ~a)" (%Closure-control i))))
  (set-record-printer! %Jump (λ (i out) (format out "Jump")))
  (define compiler
    (λ (who comb)
       (rec C
            (λ (e)
               (cond ((%Id₋? e) (list (Load ($ (%Id₋-id e)))))
                     ((%Id₊? e) (list (Position (%Id₊-index e))))
                     ((%Lambda₊? e) (list (Closure (C (%Lambda₊-body e)))))
                     ((%Comb₊? e) (comb C (%Comb₊-rator e) (%Comb₊-rand e)))
                     ((%If₊? e)
                      `(,@(C (%If₊-question e))
                        ,(Test (C (%If₊-answer e)) (C (%If₊-otherwise e)))))
                     ((%J₊? e) (list (Jump)))
                     (else (error who "not a de Bruijn term" e)))))))
  (define comb/generic (λ (C rator rand) `(,@(C rand) ,@(C rator) ,(Apply))))
  (define compile (compiler 'compile comb/generic))
  (define-record closure₊ C E)
  (define dbind/closure₊
    (λ (recv) (λ (c) (recv c (closure₊-C c) (closure₊-E c)))))
  (set-record-printer!
    closure₊
    (λ (c out) (format out "[~a ~a]" (closure₊-C c) (closure₊-E c))))
  (define-record program-closure body D)
  (define dbind/program-closure
    (λ (recv)
       (λ (pc) (recv pc (program-closure-body pc) (program-closure-D pc)))))
  (set-record-printer!
    program-closure
    (λ (pc out)
       (format
         out
         "<[~a ~a]>"
         (program-closure-body pc)
         (program-closure-D pc))))
  (define →/compiled/rules
    (λ (PA other)
       (λ (E₀)
          (dbind/status
            (λ (s S E C D)
               (cond ((and (null? C) (void? D)) s)
                     ((null? C) (pop-dump S D))
                     (else
                      (match1/first
                        ((,C₀ unquote C₊) C)
                        (cond ((%Load? C₀)
                               (let1 (S₁ (cons ((%Load-selector C₀) E₀) S))
                                     (make-status S₁ E C₊ D)))
                              ((%Position? C₀)
                               (let1 (S₁ (cons (list-ref E (%Position-index C₀)) S))
                                     (make-status S₁ E C₊ D)))
                              ((%Closure? C₀)
                               (let1 (c₊ (make-closure₊ (%Closure-control C₀) E))
                                     (make-status (cons c₊ S) E C₊ D)))
                              ((%Test? C₀)
                               (match1/first
                                 ((,boolean unquote S₊) S)
                                 (let1 (branch
                                         (if boolean
                                           (%Test-answer C₀)
                                           (%Test-otherwise C₀)))
                                       (make-status S₊ E (append branch C₊) D))))
                              ((%Apply? C₀)
                               (match1/first
                                 ((,f ,y unquote S₊) S)
                                 (PA f y S₊ E C₊ D)))
                              (else (other C₀ S E C₊ D)))))))))))
  (define PA/compiled
    (λ (f y S E C D)
       (cond/λ
         f
         (closure₊?
           (dbind/closure₊
             (λ (_ C₁ E₁)
                (let ((S₂ '())
                      (E₂ (cons y E₁))
                      (C₂ (identity C₁))
                      (D₂ (make-status S E C D)))
                  (make-status S₂ E₂ C₂ D₂)))))
         (else (K (make-status (cons (f y) S) E C D))))))
  (define →/compiled
    (→/compiled/rules
      PA/compiled
      (λ (C₀ S E C D) (error '→/compiled "no transition for" C₀))))
  (define compile⁺
    (compiler
      'compile⁺
      (λ (C rator rand)
         (cond ((%Lambda₊? rator)
                `(,@(C rand) ,(Enter) ,@(C (%Lambda₊-body rator)) ,(Exit)))
               ((%Id₊? rator)
                `(,@(C rand) ,(Position&Apply (%Id₊-index rator))))
               (else (comb/generic C rator rand))))))
  (define-record status-appender status)
  (define dbind/status-appender
    (λ (recv) (λ (sa) (recv sa (status-appender-status sa)))))
  (set-record-printer!
    status-appender
    (λ (sa out) (format out "<|~a|>" (status-appender-status sa))))
  (define →/compiled⁺
    (let ((PA (λ (f y S E C D)
                 (cond/λ
                   f
                   (program-closure?
                     (dbind/program-closure
                       (λ (_ body D₀)
                          (cond/λ
                            D₀
                            (void? (K (let ((S₁ `(,body ,y)) (C₁ (cons (Apply) '())))
                                        (make-status S₁ E C₁ D₀))))
                            (status?
                              (dbind/status
                                (λ (_ S₁ E₁ C₁ D₁)
                                   (let ((S₂ `(,body ,y unquote S₁))
                                         (E₂ (identity E₁))
                                         (C₂ (cons (Apply) C₁))
                                         (D₂ (identity D₁)))
                                     (make-status S₂ E₂ C₂ D₂)))))
                            (else error)))))
                   (status-appender?
                     (dbind/status-appender
                       (λ (_ D₀)
                          (let1 (pc (make-program-closure y D₀))
                                (make-status (cons pc S) E C D)))))
                   (else (λ (f) (PA/compiled f y S E C D)))))))
      (→/compiled/rules
        PA
        (λ (C₀ S E C₊ D)
           (cond ((%Enter? C₀)
                  (match1/first
                    ((,s₀ unquote S₊) S)
                    (let1 (D₁ (make-status S₊ '() '() D))
                          (make-status '() (cons s₀ E) C₊ D₁))))
                 ((%Exit? C₀)
                  (let ((S₁ (cons (car S) (status-S D)))
                        (E₁ (cdr E))
                        (C₁ C₊)
                        (D₁ (status-D D)))
                    (make-status S₁ E₁ C₁ D₁)))
                 ((%Position&Apply? C₀)
                  (let1 (f (list-ref E (%Position&Apply-index C₀)))
                        (match1/first ((,y unquote S₊) S) (PA f y S₊ E C₊ D))))
                 ((%Jump? C₀)
                  (let1 (S₁ (cons (make-status-appender D) S))
                        (make-status S₁ E C₊ D)))
                 (else (error '→/compiled⁺ "not an instruction" C₀))))))))

test/printer-and-curryfy: pass

(define (test/printer-and-curryfy _)
  (⊦= "((λ (x) (((p ((* (² x)) a)) ((* x) b)) c)) d)" (to-string e))
  (⊦= (Lambda 'x (Id 'y)) (curryfy '(λ (x) y)))
  (⊦= (Lambda 'x (Comb (Id 'y) (Id 'z))) (curryfy '(λ (x) (y z))))
  (⊦= e (curryfy `((λ (,v) (p (* (² ,v) a) (* ,v b) c)) d))))
((eta 0.0) (memory #(12582912 2471088 1048576)) (stdout "") (stderr ""))

test/lambda-arith: pass

(define (test/lambda-arith _)
  (⊦= 27 ((λ (x a b c) (+ (* (² x) a) (* x b) c)) 4 1 2 3))
  (let1 (p (λ (x) (λ (y) (λ (z) (+ x y z)))))
        (⊦= 27
            ((λ (x a b c) (((p (((curry₁ *) (² x)) a)) (((curry₁ *) x) b)) c))
             4
             1
             2
             3))))
((eta 0.0) (memory #(12582912 2472592 1048576)) (stdout "") (stderr ""))

test/value-env: pass

(define (test/value-env _)
  (let1 (E (make-E/first))
        (⊦= 27 ((value E) e))
        (⊦= "((λ (x) (λ (y) (((p ((* (² x)) a)) ((* x) b)) y))) d)"
            ((○ to-string curryfy)
             `((λ (,v y) (p (* (² ,v) a) (* ,v b) y)) d)))
        (⊨ ((○ procedure? (value E) curryfy)
            `((λ (,v y) (p (* (² ,v) a) (* ,v b) y)) d)))
        (let1 (e₁ `((λ (,v y) (p (* (² ,v) a) (* ,v b) y)) d o))
              (⊦= "(((λ (x) (λ (y) (((p ((* (² x)) a)) ((* x) b)) y))) d) o)"
                  ((○ to-string curryfy) e₁))
              (⊦= 0 ((○ (value E) curryfy) e₁)))
        (let1 (e₂ '(cond ((null? l) zero) ((pair? l) one) (else two)))
              (⊦= "(if (null? l) zero (if (pair? l) one two))"
                  ((○ to-string curryfy) e₂))
              (⊦= 0 ((○ (value ((extend E) `(l unquote (list)))) curryfy) e₂))
              (⊦= 1
                  ((○ (value ((extend E) `(l unquote (list 1)))) curryfy) e₂))
              (⊦= 2 ((○ (value ((extend E) `(l unquote 3))) curryfy) e₂)))))
((eta 0.0) (memory #(12582912 2525024 1048576)) (stdout "") (stderr ""))

test/Y-combinator: pass

(define (test/Y-combinator _)
  (⊦= 3
      ((Y (λ (L) (λ (l) (cond/λ l (null? (K 0)) (else (○ add1 L cdr))))))
       '(1 1 1))))
((eta 0.0) (memory #(12582912 2527040 1048576)) (stdout "") (stderr ""))

test/status-init-printer: pass

(define (test/status-init-printer _)
  (let1 (E (make-E))
        (⊨ (equal? control control₁))
        (⊦= "(S ())\n(E ())\n(C ((((λ (f) (λ (x) (f (f x)))) ²) three)))\n(D #<unspecified>)"
            (to-string (status-init E (list control))))))
((eta 0.0) (memory #(12582912 2518808 1048576)) (stdout "") (stderr ""))

test/interpreted-final: pass

(define (test/interpreted-final _)
  (let* ((E (make-E)) (s₀ (status-init E (list control))))
    (⊦= `(81
          ,(normalise "(((three) . 3) ((²) . #<procedure (commons#² x394)>))")
          ,'()
          ,(void))
        (let1 (s (last (→/interpreted* s₀)))
              (list ((○ car status-S) s)
                    ((○ normalise to-string sort/lex<=? E->alist status-E) s)
                    (status-C s)
                    (status-D s))))
    (let1 (s (last (→/interpreted* (status-init (make-E) (list control)))))
          (⊦= ² (cdr (assoc '(²) (E->alist (status-E s))))))))
((eta 0.008)
 (memory #(12582912 2590304 1048576))
 (stdout
   "(S ())\n(E ())\n(C ((((λ (f) (λ (x) (f (f x)))) ²) three)))\n(D #<unspecified>)\n(S ())\n(E ())\n(C (three\n    ((λ (f) (λ (x) (f (f x)))) ²)\n    apply117))\n(D #<unspecified>)\n(S (3))\n(E (((three) . 3)))\n(C (((λ (f) (λ (x) (f (f x)))) ²)\n    apply117))\n(D #<unspecified>)\n(S (3))\n(E (((three) . 3)))\n(C (²\n    (λ (f) (λ (x) (f (f x))))\n    apply117\n    apply117))\n(D #<unspecified>)\n(S (#<procedure (aux.commons#² x)>\n    3))\n(E (((²) . #<procedure (aux.commons#² x)>)\n    ((three) . 3)))\n(C ((λ (f) (λ (x) (f (f x))))\n    apply117\n    apply117))\n(D #<unspecified>)\n(S ([(λ (x) (f (f x))) f #<procedure (E₁131 z . rest)>]\n    #<procedure (aux.commons#² x)>\n    3))\n(E (((²) . #<procedure (aux.commons#² x)>)\n    ((three) . 3)))\n(C (apply117\n    apply117))\n(D #<unspecified>)\n(S ())\n(E (((²) . #<procedure (aux.commons#² x)>)\n    ((three) . 3)))\n(C ((λ (x) (f (f x)))))\n((S (3))\n (E (((²) . #<procedure (aux.commons#² x)>)\n     ((three) . 3)))\n (C (apply117))\n (D #<unspecified>))\n(S ([(f (f x)) x #<procedure (E₁131 z . rest)>]))\n(E (((²) . #<procedure (aux.commons#² x)>)\n    ((three) . 3)))\n(C ())\n((S (3))\n (E (((²) . #<procedure (aux.commons#² x)>)\n     ((three) . 3)))\n (C (apply117))\n (D #<unspecified>))\n(S ([(f (f x)) x #<procedure (E₁131 z . rest)>]\n    3))\n(E (((²) . #<procedure (aux.commons#² x)>)\n    ((three) . 3)))\n(C (apply117))\n(D #<unspecified>)\n(S ())\n(E (((²) . #<procedure (aux.commons#² x)>)\n    ((three) . 3)))\n(C ((f (f x))))\n((S ())\n (E (((²) . #<procedure (aux.commons#² x)>)\n     ((three) . 3)))\n (C ())\n (D #<unspecified>))\n(S ())\n(E (((²) . #<procedure (aux.commons#² x)>)\n    ((three) . 3)))\n(C ((f x)\n    f\n    apply117))\n((S ())\n (E (((²) . #<procedure (aux.commons#² x)>)\n     ((three) . 3)))\n (C ())\n (D #<unspecified>))\n(S ())\n(E (((²) . #<procedure (aux.commons#² x)>)\n    ((three) . 3)))\n(C (x\n    f\n    apply117\n    f\n    apply117))\n((S ())\n (E (((²) . #<procedure (aux.commons#² x)>)\n     ((three) . 3)))\n (C ())\n (D #<unspecified>))\n(S (3))\n(E (((x) . 3)\n    ((²) . #<procedure (aux.commons#² x)>)\n    ((three) . 3)))\n(C (f\n    apply117\n    f\n    apply117))\n((S ())\n (E (((²) . #<procedure (aux.commons#² x)>)\n     ((three) . 3)))\n (C ())\n (D #<unspecified>))\n(S (#<procedure (aux.commons#² x)>\n    3))\n(E (((x) . 3)\n    ((²) . #<procedure (aux.commons#² x)>)\n    ((f) . #<procedure (aux.commons#² x)>)\n    ((three) . 3)))\n(C (apply117\n    f\n    apply117))\n((S ())\n (E (((²) . #<procedure (aux.commons#² x)>)\n     ((three) . 3)))\n (C ())\n (D #<unspecified>))\n(S (9))\n(E (((x) . 3)\n    ((²) . #<procedure (aux.commons#² x)>)\n    ((f) . #<procedure (aux.commons#² x)>)\n    ((three) . 3)))\n(C (f\n    apply117))\n((S ())\n (E (((²) . #<procedure (aux.commons#² x)>)\n     ((three) . 3)))\n (C ())\n (D #<unspecified>))\n(S (#<procedure (aux.commons#² x)>\n    9))\n(E (((x) . 3)\n    ((²) . #<procedure (aux.commons#² x)>)\n    ((f) . #<procedure (aux.commons#² x)>)\n    ((three) . 3)))\n(C (apply117))\n((S ())\n (E (((²) . #<procedure (aux.commons#² x)>)\n     ((three) . 3)))\n (C ())\n (D #<unspecified>))\n(S (81))\n(E (((x) . 3)\n    ((²) . #<procedure (aux.commons#² x)>)\n    ((f) . #<procedure (aux.commons#² x)>)\n    ((three) . 3)))\n(C ())\n((S ())\n (E (((²) . #<procedure (aux.commons#² x)>)\n     ((three) . 3)))\n (C ())\n (D #<unspecified>))\n(S (81))\n(E (((²) . #<procedure (aux.commons#² x)>)\n    ((three) . 3)))\n(C ())\n(D #<unspecified>)\n(S ())\n(E ())\n(C ((((λ (f) (λ (x) (f (f x)))) ²) three)))\n(D #<unspecified>)\n(S ())\n(E ())\n(C (three\n    ((λ (f) (λ (x) (f (f x)))) ²)\n    apply117))\n(D #<unspecified>)\n(S (3))\n(E (((three) . 3)))\n(C (((λ (f) (λ (x) (f (f x)))) ²)\n    apply117))\n(D #<unspecified>)\n(S (3))\n(E (((three) . 3)))\n(C (²\n    (λ (f) (λ (x) (f (f x))))\n    apply117\n    apply117))\n(D #<unspecified>)\n(S (#<procedure (aux.commons#² x)>\n    3))\n(E (((three) . 3)\n    ((²) . #<procedure (aux.commons#² x)>)))\n(C ((λ (f) (λ (x) (f (f x))))\n    apply117\n    apply117))\n(D #<unspecified>)\n(S ([(λ (x) (f (f x))) f #<procedure (E₁131 z . rest)>]\n    #<procedure (aux.commons#² x)>\n    3))\n(E (((three) . 3)\n    ((²) . #<procedure (aux.commons#² x)>)))\n(C (apply117\n    apply117))\n(D #<unspecified>)\n(S ())\n(E (((three) . 3)\n    ((²) . #<procedure (aux.commons#² x)>)))\n(C ((λ (x) (f (f x)))))\n((S (3))\n (E (((three) . 3)\n     ((²) . #<procedure (aux.commons#² x)>)))\n (C (apply117))\n (D #<unspecified>))\n(S ([(f (f x)) x #<procedure (E₁131 z . rest)>]))\n(E (((three) . 3)\n    ((²) . #<procedure (aux.commons#² x)>)))\n(C ())\n((S (3))\n (E (((three) . 3)\n     ((²) . #<procedure (aux.commons#² x)>)))\n (C (apply117))\n (D #<unspecified>))\n(S ([(f (f x)) x #<procedure (E₁131 z . rest)>]\n    3))\n(E (((three) . 3)\n    ((²) . #<procedure (aux.commons#² x)>)))\n(C (apply117))\n(D #<unspecified>)\n(S ())\n(E (((²) . #<procedure (aux.commons#² x)>)\n    ((three) . 3)))\n(C ((f (f x))))\n((S ())\n (E (((three) . 3)\n     ((²) . #<procedure (aux.commons#² x)>)))\n (C ())\n (D #<unspecified>))\n(S ())\n(E (((²) . #<procedure (aux.commons#² x)>)\n    ((three) . 3)))\n(C ((f x)\n    f\n    apply117))\n((S ())\n (E (((three) . 3)\n     ((²) . #<procedure (aux.commons#² x)>)))\n (C ())\n (D #<unspecified>))\n(S ())\n(E (((²) . #<procedure (aux.commons#² x)>)\n    ((three) . 3)))\n(C (x\n    f\n    apply117\n    f\n    apply117))\n((S ())\n (E (((three) . 3)\n     ((²) . #<procedure (aux.commons#² x)>)))\n (C ())\n (D #<unspecified>))\n(S (3))\n(E (((²) . #<procedure (aux.commons#² x)>)\n    ((x) . 3)\n    ((three) . 3)))\n(C (f\n    apply117\n    f\n    apply117))\n((S ())\n (E (((three) . 3)\n     ((²) . #<procedure (aux.commons#² x)>)))\n (C ())\n (D #<unspecified>))\n(S (#<procedure (aux.commons#² x)>\n    3))\n(E (((²) . #<procedure (aux.commons#² x)>)\n    ((x) . 3)\n    ((three) . 3)\n    ((f) . #<procedure (aux.commons#² x)>)))\n(C (apply117\n    f\n    apply117))\n((S ())\n (E (((three) . 3)\n     ((²) . #<procedure (aux.commons#² x)>)))\n (C ())\n (D #<unspecified>))\n(S (9))\n(E (((²) . #<procedure (aux.commons#² x)>)\n    ((x) . 3)\n    ((three) . 3)\n    ((f) . #<procedure (aux.commons#² x)>)))\n(C (f\n    apply117))\n((S ())\n (E (((three) . 3)\n     ((²) . #<procedure (aux.commons#² x)>)))\n (C ())\n (D #<unspecified>))\n(S (#<procedure (aux.commons#² x)>\n    9))\n(E (((²) . #<procedure (aux.commons#² x)>)\n    ((x) . 3)\n    ((three) . 3)\n    ((f) . #<procedure (aux.commons#² x)>)))\n(C (apply117))\n((S ())\n (E (((three) . 3)\n     ((²) . #<procedure (aux.commons#² x)>)))\n (C ())\n (D #<unspecified>))\n(S (81))\n(E (((²) . #<procedure (aux.commons#² x)>)\n    ((x) . 3)\n    ((three) . 3)\n    ((f) . #<procedure (aux.commons#² x)>)))\n(C ())\n((S ())\n (E (((three) . 3)\n     ((²) . #<procedure (aux.commons#² x)>)))\n (C ())\n (D #<unspecified>))\n(S (81))\n(E (((three) . 3)\n    ((²) . #<procedure (aux.commons#² x)>)))\n(C ())\n(D #<unspecified>)\n")
 (stderr ""))

test/de-bruijn: pass

(define (test/de-bruijn _)
  (let1 (t '(λ (x) ((g x) (λ (y) ((λ (z) (x y z)) (f x))))))
        (⊦= "(λ ((g 0) (λ ((λ ((2 1) 0)) (f 1)))))"
            ((○ to-string expression->de-bruijn curryfy) t)))
  (⊦= "(λ (f) ((λ (g) (f (λ (x) ((g g) x)))) (λ (g) (f (λ (x) ((g g) x))))))"
      (to-string Y₀))
  (⊦= "(λ ((λ (1 (λ ((1 1) 0)))) (λ (1 (λ ((1 1) 0))))))"
      ((○ to-string expression->de-bruijn curryfy) 'Y)))
((eta 0.0) (memory #(12582912 2566832 1048576)) (stdout "") (stderr ""))

test/value₊: pass

(define (test/value₊ _)
  (let* ((E ((extend E₀) `(three . 3) `(four . 4) `(+ unquote (curry₁ +))))
         (t (curryfy `((λ (p x) (p x three)) + four))))
    (⊦= 7 ((○ (value₊ E) expression->de-bruijn) t))))
((eta 0.0) (memory #(12582912 2504408 1048576)) (stdout "") (stderr ""))

test/compile: pass

(define (test/compile _)
  (⊦= "((Load three) (Load ²) (Closure ((Closure ((Position 0) (Position 1) Apply (Position 1) Apply)))) Apply Apply)"
      ((○ to-string compile expression->de-bruijn) control))
  (⊦= "((Load three) (Load ²) Enter (Closure ((Position 0) (Position&Apply 1) (Position&Apply 1))) Exit Apply)"
      ((○ to-string compile⁺ expression->de-bruijn) control₁))
  (⊦= "((Load three) (Closure ((Position 0) (Position 0) (Load *) Apply Apply)) Enter (Closure ((Position 0) (Position&Apply 1) (Position&Apply 1))) Exit Apply)"
      ((○ to-string compile⁺ expression->de-bruijn) control₂))
  (⊦= "((Closure ((Closure ((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1))) Enter (Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1) Exit)))"
      ((○ to-string compile⁺ expression->de-bruijn curryfy) 'Y)))
((eta 0.001) (memory #(12582912 2505648 1048576)) (stdout "") (stderr ""))

test/compiled-runs: pass

(define (test/compiled-runs _)
  (⊦= `(81 ,'() ,'() ,(void)) (final (last (→/compiled* s₁))))
  (⊦= `(81 ,'() ,'() ,(void)) (final (last (→/compiled⁺* s₁))))
  (⊦= `(81 ,'() ,'() ,(void)) (final (last (→/compiled⁺* s₁⁺))))
  (⊦= "[((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))) ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])])]"
      ((○ to-string car status-S last →/compiled⁺*) Y⁺)))
((eta 0.002)
 (memory #(12582912 2570800 1048576))
 (stdout
   "(S ())\n(E ())\n(C ((Load three)\n    (Load ²)\n    (Closure ((Closure ((Position 0) (Position 1) Apply (Position 1) Apply))))\n    Apply\n    Apply))\n(D #<unspecified>)\n(S (3))\n(E ())\n(C ((Load ²)\n    (Closure ((Closure ((Position 0) (Position 1) Apply (Position 1) Apply))))\n    Apply\n    Apply))\n(D #<unspecified>)\n(S (#<procedure (aux.commons#² x)>\n    3))\n(E ())\n(C ((Closure ((Closure ((Position 0) (Position 1) Apply (Position 1) Apply))))\n    Apply\n    Apply))\n(D #<unspecified>)\n(S ([((Closure ((Position 0) (Position 1) Apply (Position 1) Apply))) ()]\n    #<procedure (aux.commons#² x)>\n    3))\n(E ())\n(C (Apply\n    Apply))\n(D #<unspecified>)\n(S ())\n(E (#<procedure (aux.commons#² x)>))\n(C ((Closure ((Position 0) (Position 1) Apply (Position 1) Apply))))\n((S (3))\n (E ())\n (C (Apply))\n (D #<unspecified>))\n(S ([((Position 0) (Position 1) Apply (Position 1) Apply) (#<procedure (aux.commons#² x)>)]))\n(E (#<procedure (aux.commons#² x)>))\n(C ())\n((S (3))\n (E ())\n (C (Apply))\n (D #<unspecified>))\n(S ([((Position 0) (Position 1) Apply (Position 1) Apply) (#<procedure (aux.commons#² x)>)]\n    3))\n(E ())\n(C (Apply))\n(D #<unspecified>)\n(S ())\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C ((Position 0)\n    (Position 1)\n    Apply\n    (Position 1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (3))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C ((Position 1)\n    Apply\n    (Position 1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#<procedure (aux.commons#² x)>\n    3))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C (Apply\n    (Position 1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (9))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C ((Position 1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#<procedure (aux.commons#² x)>\n    9))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C (Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (81))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C ())\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (81))\n(E ())\n(C ())\n(D #<unspecified>)\n(S ())\n(E ())\n(C ((Load three)\n    (Load ²)\n    (Closure ((Closure ((Position 0) (Position 1) Apply (Position 1) Apply))))\n    Apply\n    Apply))\n(D #<unspecified>)\n(S (3))\n(E ())\n(C ((Load ²)\n    (Closure ((Closure ((Position 0) (Position 1) Apply (Position 1) Apply))))\n    Apply\n    Apply))\n(D #<unspecified>)\n(S (#<procedure (aux.commons#² x)>\n    3))\n(E ())\n(C ((Closure ((Closure ((Position 0) (Position 1) Apply (Position 1) Apply))))\n    Apply\n    Apply))\n(D #<unspecified>)\n(S ([((Closure ((Position 0) (Position 1) Apply (Position 1) Apply))) ()]\n    #<procedure (aux.commons#² x)>\n    3))\n(E ())\n(C (Apply\n    Apply))\n(D #<unspecified>)\n(S ())\n(E (#<procedure (aux.commons#² x)>))\n(C ((Closure ((Position 0) (Position 1) Apply (Position 1) Apply))))\n((S (3))\n (E ())\n (C (Apply))\n (D #<unspecified>))\n(S ([((Position 0) (Position 1) Apply (Position 1) Apply) (#<procedure (aux.commons#² x)>)]))\n(E (#<procedure (aux.commons#² x)>))\n(C ())\n((S (3))\n (E ())\n (C (Apply))\n (D #<unspecified>))\n(S ([((Position 0) (Position 1) Apply (Position 1) Apply) (#<procedure (aux.commons#² x)>)]\n    3))\n(E ())\n(C (Apply))\n(D #<unspecified>)\n(S ())\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C ((Position 0)\n    (Position 1)\n    Apply\n    (Position 1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (3))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C ((Position 1)\n    Apply\n    (Position 1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#<procedure (aux.commons#² x)>\n    3))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C (Apply\n    (Position 1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (9))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C ((Position 1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#<procedure (aux.commons#² x)>\n    9))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C (Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (81))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C ())\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (81))\n(E ())\n(C ())\n(D #<unspecified>)\n(S ())\n(E ())\n(C ((Load three)\n    (Load ²)\n    Enter\n    (Closure ((Position 0) (Position&Apply 1) (Position&Apply 1)))\n    Exit\n    Apply))\n(D #<unspecified>)\n(S (3))\n(E ())\n(C ((Load ²)\n    Enter\n    (Closure ((Position 0) (Position&Apply 1) (Position&Apply 1)))\n    Exit\n    Apply))\n(D #<unspecified>)\n(S (#<procedure (aux.commons#² x)>\n    3))\n(E ())\n(C (Enter\n    (Closure ((Position 0) (Position&Apply 1) (Position&Apply 1)))\n    Exit\n    Apply))\n(D #<unspecified>)\n(S ())\n(E (#<procedure (aux.commons#² x)>))\n(C ((Closure ((Position 0) (Position&Apply 1) (Position&Apply 1)))\n    Exit\n    Apply))\n((S (3))\n (E ())\n (C ())\n (D #<unspecified>))\n(S ([((Position 0) (Position&Apply 1) (Position&Apply 1)) (#<procedure (aux.commons#² x)>)]))\n(E (#<procedure (aux.commons#² x)>))\n(C (Exit\n    Apply))\n((S (3))\n (E ())\n (C ())\n (D #<unspecified>))\n(S ([((Position 0) (Position&Apply 1) (Position&Apply 1)) (#<procedure (aux.commons#² x)>)]\n    3))\n(E ())\n(C (Apply))\n(D #<unspecified>)\n(S ())\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C ((Position 0)\n    (Position&Apply 1)\n    (Position&Apply 1)))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (3))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C ((Position&Apply 1)\n    (Position&Apply 1)))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (9))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C ((Position&Apply 1)))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (81))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C ())\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (81))\n(E ())\n(C ())\n(D #<unspecified>)\n(S ())\n(E ())\n(C ((Closure ((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))))\n    Enter\n    (Closure ((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)))\n    Enter\n    (Closure ((Position 0) (Position 1) (Position&Apply 1) Apply))\n    (Position&Apply 1)\n    Exit\n    Exit))\n(D #<unspecified>)\n(S ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(E ())\n(C (Enter\n    (Closure ((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)))\n    Enter\n    (Closure ((Position 0) (Position 1) (Position&Apply 1) Apply))\n    (Position&Apply 1)\n    Exit\n    Exit))\n(D #<unspecified>)\n(S ())\n(E ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Closure ((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)))\n    Enter\n    (Closure ((Position 0) (Position 1) (Position&Apply 1) Apply))\n    (Position&Apply 1)\n    Exit\n    Exit))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(E ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C (Enter\n    (Closure ((Position 0) (Position 1) (Position&Apply 1) Apply))\n    (Position&Apply 1)\n    Exit\n    Exit))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ())\n(E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply))\n    (Position&Apply 1)\n    Exit\n    Exit))\n((S ())\n (E ())\n (C ())\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Position&Apply 1)\n    Exit\n    Exit))\n((S ())\n (E ())\n (C ())\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S ())\n(E ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))))\n((S ())\n (E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C (Exit\n     Exit))\n ((S ())\n  (E ())\n  (C ())\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))) ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])])]))\n(E ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ())\n((S ())\n (E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C (Exit\n     Exit))\n ((S ())\n  (E ())\n  (C ())\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))) ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])])]))\n(E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C (Exit\n    Exit))\n((S ())\n (E ())\n (C ())\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))) ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])])]))\n(E ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C (Exit))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))) ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])])]))\n(E ())\n(C ())\n(D #<unspecified>)\n")
 (stderr ""))

test/compiled-rules: pass

(define (test/compiled-rules _)
  (let1 (no-rule
          (λ (→ C)
             (condition-case
               (begin ((→ (make-E)) (status-init '() C)) #f)
               (e (exn) ((condition-property-accessor 'exn 'message) e)))))
        (for-each
          (λ (i) (⊦= "no transition for" (no-rule →/compiled (list i))))
          (list (Enter) (Exit) (Position&Apply 0) (Jump)))
        (⊦= "not an instruction" (no-rule →/compiled⁺ (list 'Load))))
  (⊦= (map to-string (→/compiled* s₁)) (map to-string (→/compiled⁺* s₁))))
((eta 0.001)
 (memory #(12582912 2564288 1048576))
 (stdout
   "(S ())\n(E ())\n(C ((Load three)\n    (Load ²)\n    (Closure ((Closure ((Position 0) (Position 1) Apply (Position 1) Apply))))\n    Apply\n    Apply))\n(D #<unspecified>)\n(S (3))\n(E ())\n(C ((Load ²)\n    (Closure ((Closure ((Position 0) (Position 1) Apply (Position 1) Apply))))\n    Apply\n    Apply))\n(D #<unspecified>)\n(S (#<procedure (aux.commons#² x)>\n    3))\n(E ())\n(C ((Closure ((Closure ((Position 0) (Position 1) Apply (Position 1) Apply))))\n    Apply\n    Apply))\n(D #<unspecified>)\n(S ([((Closure ((Position 0) (Position 1) Apply (Position 1) Apply))) ()]\n    #<procedure (aux.commons#² x)>\n    3))\n(E ())\n(C (Apply\n    Apply))\n(D #<unspecified>)\n(S ())\n(E (#<procedure (aux.commons#² x)>))\n(C ((Closure ((Position 0) (Position 1) Apply (Position 1) Apply))))\n((S (3))\n (E ())\n (C (Apply))\n (D #<unspecified>))\n(S ([((Position 0) (Position 1) Apply (Position 1) Apply) (#<procedure (aux.commons#² x)>)]))\n(E (#<procedure (aux.commons#² x)>))\n(C ())\n((S (3))\n (E ())\n (C (Apply))\n (D #<unspecified>))\n(S ([((Position 0) (Position 1) Apply (Position 1) Apply) (#<procedure (aux.commons#² x)>)]\n    3))\n(E ())\n(C (Apply))\n(D #<unspecified>)\n(S ())\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C ((Position 0)\n    (Position 1)\n    Apply\n    (Position 1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (3))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C ((Position 1)\n    Apply\n    (Position 1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#<procedure (aux.commons#² x)>\n    3))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C (Apply\n    (Position 1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (9))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C ((Position 1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#<procedure (aux.commons#² x)>\n    9))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C (Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (81))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C ())\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (81))\n(E ())\n(C ())\n(D #<unspecified>)\n(S ())\n(E ())\n(C ((Load three)\n    (Load ²)\n    (Closure ((Closure ((Position 0) (Position 1) Apply (Position 1) Apply))))\n    Apply\n    Apply))\n(D #<unspecified>)\n(S (3))\n(E ())\n(C ((Load ²)\n    (Closure ((Closure ((Position 0) (Position 1) Apply (Position 1) Apply))))\n    Apply\n    Apply))\n(D #<unspecified>)\n(S (#<procedure (aux.commons#² x)>\n    3))\n(E ())\n(C ((Closure ((Closure ((Position 0) (Position 1) Apply (Position 1) Apply))))\n    Apply\n    Apply))\n(D #<unspecified>)\n(S ([((Closure ((Position 0) (Position 1) Apply (Position 1) Apply))) ()]\n    #<procedure (aux.commons#² x)>\n    3))\n(E ())\n(C (Apply\n    Apply))\n(D #<unspecified>)\n(S ())\n(E (#<procedure (aux.commons#² x)>))\n(C ((Closure ((Position 0) (Position 1) Apply (Position 1) Apply))))\n((S (3))\n (E ())\n (C (Apply))\n (D #<unspecified>))\n(S ([((Position 0) (Position 1) Apply (Position 1) Apply) (#<procedure (aux.commons#² x)>)]))\n(E (#<procedure (aux.commons#² x)>))\n(C ())\n((S (3))\n (E ())\n (C (Apply))\n (D #<unspecified>))\n(S ([((Position 0) (Position 1) Apply (Position 1) Apply) (#<procedure (aux.commons#² x)>)]\n    3))\n(E ())\n(C (Apply))\n(D #<unspecified>)\n(S ())\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C ((Position 0)\n    (Position 1)\n    Apply\n    (Position 1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (3))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C ((Position 1)\n    Apply\n    (Position 1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#<procedure (aux.commons#² x)>\n    3))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C (Apply\n    (Position 1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (9))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C ((Position 1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#<procedure (aux.commons#² x)>\n    9))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C (Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (81))\n(E (3\n    #<procedure (aux.commons#² x)>))\n(C ())\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (81))\n(E ())\n(C ())\n(D #<unspecified>)\n")
 (stderr ""))

test/Y-length: pass

(define (test/Y-length _)
  (⊦= `(3 ,'() ,'() ,(void))
      (let* ((s₁ (status-init '() ((○ compile expression->de-bruijn) Y₁)))
             (s (last (→/compiled* s₁))))
        (final s)))
  (⊦= 3 ((○ car status-S last →/compiled⁺*) Y₁⁺)))
((eta 0.045)
 (memory #(12582912 3417968 1048576))
 (stdout
   "(S ())\n(E ())\n(C ((Load ones)\n    (Closure ((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))))\n    (Closure ((Closure ((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply)) (Closure ((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply)) Apply))\n    Apply\n    Apply))\n(D #<unspecified>)\n(S ((1 1 1)))\n(E ())\n(C ((Closure ((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))))\n    (Closure ((Closure ((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply)) (Closure ((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply)) Apply))\n    Apply\n    Apply))\n(D #<unspecified>)\n(S ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]\n    (1 1 1)))\n(E ())\n(C ((Closure ((Closure ((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply)) (Closure ((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply)) Apply))\n    Apply\n    Apply))\n(D #<unspecified>)\n(S ([((Closure ((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply)) (Closure ((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply)) Apply) ()]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]\n    (1 1 1)))\n(E ())\n(C (Apply\n    Apply))\n(D #<unspecified>)\n(S ())\n(E ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ((Closure ((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply))\n    (Closure ((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply))\n    Apply))\n((S ((1 1 1)))\n (E ())\n (C (Apply))\n (D #<unspecified>))\n(S ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(E ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ((Closure ((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply))\n    Apply))\n((S ((1 1 1)))\n (E ())\n (C (Apply))\n (D #<unspecified>))\n(S ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(E ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C (Apply))\n((S ((1 1 1)))\n (E ())\n (C (Apply))\n (D #<unspecified>))\n(S ())\n(E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ((Closure ((Position 0) (Position 1) (Position 1) Apply Apply))\n    (Position 1)\n    Apply))\n((S ())\n (E ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ((1 1 1)))\n  (E ())\n  (C (Apply))\n  (D #<unspecified>)))\n(S ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ((Position 1)\n    Apply))\n((S ())\n (E ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ((1 1 1)))\n  (E ())\n  (C (Apply))\n  (D #<unspecified>)))\n(S ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C (Apply))\n((S ())\n (E ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ((1 1 1)))\n  (E ())\n  (C (Apply))\n  (D #<unspecified>)))\n(S ())\n(E ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))))\n((S ())\n (E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ((1 1 1)))\n   (E ())\n   (C (Apply))\n   (D #<unspecified>))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))) ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])])]))\n(E ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ())\n((S ())\n (E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ((1 1 1)))\n   (E ())\n   (C (Apply))\n   (D #<unspecified>))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))) ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])])]))\n(E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ())\n((S ())\n (E ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ((1 1 1)))\n  (E ())\n  (C (Apply))\n  (D #<unspecified>)))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))) ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])])]))\n(E ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ())\n((S ((1 1 1)))\n (E ())\n (C (Apply))\n (D #<unspecified>))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))) ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])])]\n    (1 1 1)))\n(E ())\n(C (Apply))\n(D #<unspecified>)\n(S ())\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Position 0)\n    (Load null?)\n    Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ((1 1 1)))\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Load null?)\n    Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#<procedure (scheme#null? x)>\n    (1 1 1)))\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C (Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#f))\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ())\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Position 0)\n    (Load cdr)\n    Apply\n    (Position 1)\n    Apply\n    (Load add1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ((1 1 1)))\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Load cdr)\n    Apply\n    (Position 1)\n    Apply\n    (Load add1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#<procedure (scheme#cdr x)>\n    (1 1 1)))\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C (Apply\n    (Position 1)\n    Apply\n    (Load add1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ((1 1)))\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Position 1)\n    Apply\n    (Load add1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    (1 1)))\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C (Apply\n    (Load add1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ())\n(E ((1 1)\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ((Position 0)\n    (Position 1)\n    (Position 1)\n    Apply\n    Apply))\n((S ())\n (E ((1 1 1)\n     [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S ((1 1)))\n(E ((1 1)\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ((Position 1)\n    (Position 1)\n    Apply\n    Apply))\n((S ())\n (E ((1 1 1)\n     [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    (1 1)))\n(E ((1 1)\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ((Position 1)\n    Apply\n    Apply))\n((S ())\n (E ((1 1 1)\n     [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    (1 1)))\n(E ((1 1)\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C (Apply\n    Apply))\n((S ())\n (E ((1 1 1)\n     [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S ())\n(E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ((Closure ((Position 0) (Position 1) (Position 1) Apply Apply))\n    (Position 1)\n    Apply))\n((S ((1 1)))\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ((Position 1)\n    Apply))\n((S ((1 1)))\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C (Apply))\n((S ((1 1)))\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ())\n(E ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))))\n((S ())\n (E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ((1 1)))\n  (E ((1 1)\n      [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n  (C (Apply))\n  ((S ())\n   (E ((1 1 1)\n       [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ())\n    (C ())\n    (D #<unspecified>)))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))) ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])])]))\n(E ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ())\n((S ())\n (E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ((1 1)))\n  (E ((1 1)\n      [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n  (C (Apply))\n  ((S ())\n   (E ((1 1 1)\n       [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ())\n    (C ())\n    (D #<unspecified>)))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))) ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])])]))\n(E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ())\n((S ((1 1)))\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))) ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])])]\n    (1 1)))\n(E ((1 1)\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C (Apply))\n((S ())\n (E ((1 1 1)\n     [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S ())\n(E ((1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Position 0)\n    (Load null?)\n    Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ((1 1)))\n(E ((1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Load null?)\n    Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S (#<procedure (scheme#null? x)>\n    (1 1)))\n(E ((1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C (Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S (#f))\n(E ((1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ())\n(E ((1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Position 0)\n    (Load cdr)\n    Apply\n    (Position 1)\n    Apply\n    (Load add1)\n    Apply))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ((1 1)))\n(E ((1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Load cdr)\n    Apply\n    (Position 1)\n    Apply\n    (Load add1)\n    Apply))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S (#<procedure (scheme#cdr x)>\n    (1 1)))\n(E ((1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C (Apply\n    (Position 1)\n    Apply\n    (Load add1)\n    Apply))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ((1)))\n(E ((1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Position 1)\n    Apply\n    (Load add1)\n    Apply))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    (1)))\n(E ((1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C (Apply\n    (Load add1)\n    Apply))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ())\n(E ((1)\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ((Position 0)\n    (Position 1)\n    (Position 1)\n    Apply\n    Apply))\n((S ())\n (E ((1 1)\n     [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1 1)\n      [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1 1)\n       [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ())\n    (C ())\n    (D #<unspecified>)))))\n(S ((1)))\n(E ((1)\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ((Position 1)\n    (Position 1)\n    Apply\n    Apply))\n((S ())\n (E ((1 1)\n     [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1 1)\n      [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1 1)\n       [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ())\n    (C ())\n    (D #<unspecified>)))))\n(S ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    (1)))\n(E ((1)\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ((Position 1)\n    Apply\n    Apply))\n((S ())\n (E ((1 1)\n     [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1 1)\n      [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1 1)\n       [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ())\n    (C ())\n    (D #<unspecified>)))))\n(S ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    (1)))\n(E ((1)\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C (Apply\n    Apply))\n((S ())\n (E ((1 1)\n     [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1 1)\n      [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1 1)\n       [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ())\n    (C ())\n    (D #<unspecified>)))))\n(S ())\n(E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ((Closure ((Position 0) (Position 1) (Position 1) Apply Apply))\n    (Position 1)\n    Apply))\n((S ((1)))\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ((Position 1)\n    Apply))\n((S ((1)))\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C (Apply))\n((S ((1)))\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S ())\n(E ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))))\n((S ())\n (E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ((1)))\n  (E ((1)\n      [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n  (C (Apply))\n  ((S ())\n   (E ((1 1)\n       [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ((1 1)\n        [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n        [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n    (C ())\n    ((S ())\n     (E ((1 1 1)\n         [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n     (C ((Load add1)\n         Apply))\n     ((S ())\n      (E ())\n      (C ())\n      (D #<unspecified>)))))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))) ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])])]))\n(E ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ())\n((S ())\n (E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ((1)))\n  (E ((1)\n      [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n  (C (Apply))\n  ((S ())\n   (E ((1 1)\n       [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ((1 1)\n        [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n        [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n    (C ())\n    ((S ())\n     (E ((1 1 1)\n         [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n     (C ((Load add1)\n         Apply))\n     ((S ())\n      (E ())\n      (C ())\n      (D #<unspecified>)))))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))) ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])])]))\n(E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ())\n((S ((1)))\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))) ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])])]\n    (1)))\n(E ((1)\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C (Apply))\n((S ())\n (E ((1 1)\n     [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1 1)\n      [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1 1)\n       [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ())\n    (C ())\n    (D #<unspecified>)))))\n(S ())\n(E ((1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Position 0)\n    (Load null?)\n    Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S ((1)))\n(E ((1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Load null?)\n    Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S (#<procedure (scheme#null? x)>\n    (1)))\n(E ((1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C (Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S (#f))\n(E ((1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S ())\n(E ((1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Position 0)\n    (Load cdr)\n    Apply\n    (Position 1)\n    Apply\n    (Load add1)\n    Apply))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S ((1)))\n(E ((1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Load cdr)\n    Apply\n    (Position 1)\n    Apply\n    (Load add1)\n    Apply))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S (#<procedure (scheme#cdr x)>\n    (1)))\n(E ((1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C (Apply\n    (Position 1)\n    Apply\n    (Load add1)\n    Apply))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S (()))\n(E ((1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Position 1)\n    Apply\n    (Load add1)\n    Apply))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    ()))\n(E ((1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C (Apply\n    (Load add1)\n    Apply))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S ())\n(E (()\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ((Position 0)\n    (Position 1)\n    (Position 1)\n    Apply\n    Apply))\n((S ())\n (E ((1)\n     [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1)\n      [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1)\n       [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ((1 1)\n        [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n        [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n    (C ())\n    ((S ())\n     (E ((1 1 1)\n         [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n     (C ((Load add1)\n         Apply))\n     ((S ())\n      (E ())\n      (C ())\n      (D #<unspecified>)))))))\n(S (()))\n(E (()\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ((Position 1)\n    (Position 1)\n    Apply\n    Apply))\n((S ())\n (E ((1)\n     [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1)\n      [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1)\n       [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ((1 1)\n        [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n        [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n    (C ())\n    ((S ())\n     (E ((1 1 1)\n         [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n     (C ((Load add1)\n         Apply))\n     ((S ())\n      (E ())\n      (C ())\n      (D #<unspecified>)))))))\n(S ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    ()))\n(E (()\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ((Position 1)\n    Apply\n    Apply))\n((S ())\n (E ((1)\n     [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1)\n      [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1)\n       [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ((1 1)\n        [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n        [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n    (C ())\n    ((S ())\n     (E ((1 1 1)\n         [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n     (C ((Load add1)\n         Apply))\n     ((S ())\n      (E ())\n      (C ())\n      (D #<unspecified>)))))))\n(S ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    ()))\n(E (()\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C (Apply\n    Apply))\n((S ())\n (E ((1)\n     [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1)\n      [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1)\n       [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ((1 1)\n        [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n        [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n    (C ())\n    ((S ())\n     (E ((1 1 1)\n         [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n     (C ((Load add1)\n         Apply))\n     ((S ())\n      (E ())\n      (C ())\n      (D #<unspecified>)))))))\n(S ())\n(E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ((Closure ((Position 0) (Position 1) (Position 1) Apply Apply))\n    (Position 1)\n    Apply))\n((S (()))\n (E (()\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ((1 1)\n         [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n         [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n     (C ())\n     ((S ())\n      (E ((1 1 1)\n          [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n      (C ((Load add1)\n          Apply))\n      ((S ())\n       (E ())\n       (C ())\n       (D #<unspecified>))))))))\n(S ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ((Position 1)\n    Apply))\n((S (()))\n (E (()\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ((1 1)\n         [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n         [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n     (C ())\n     ((S ())\n      (E ((1 1 1)\n          [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n      (C ((Load add1)\n          Apply))\n      ((S ())\n       (E ())\n       (C ())\n       (D #<unspecified>))))))))\n(S ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C (Apply))\n((S (()))\n (E (()\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ((1 1)\n         [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n         [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n     (C ())\n     ((S ())\n      (E ((1 1 1)\n          [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n      (C ((Load add1)\n          Apply))\n      ((S ())\n       (E ())\n       (C ())\n       (D #<unspecified>))))))))\n(S ())\n(E ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))))\n((S ())\n (E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S (()))\n  (E (()\n      [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n  (C (Apply))\n  ((S ())\n   (E ((1)\n       [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ((1)\n        [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n        [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n    (C ())\n    ((S ())\n     (E ((1 1)\n         [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n     (C ((Load add1)\n         Apply))\n     ((S ())\n      (E ((1 1)\n          [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n          [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n      (C ())\n      ((S ())\n       (E ((1 1 1)\n           [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n       (C ((Load add1)\n           Apply))\n       ((S ())\n        (E ())\n        (C ())\n        (D #<unspecified>)))))))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))) ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])])]))\n(E ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ())\n((S ())\n (E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S (()))\n  (E (()\n      [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n  (C (Apply))\n  ((S ())\n   (E ((1)\n       [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ((1)\n        [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n        [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n    (C ())\n    ((S ())\n     (E ((1 1)\n         [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n     (C ((Load add1)\n         Apply))\n     ((S ())\n      (E ((1 1)\n          [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n          [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n      (C ())\n      ((S ())\n       (E ((1 1 1)\n           [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n       (C ((Load add1)\n           Apply))\n       ((S ())\n        (E ())\n        (C ())\n        (D #<unspecified>)))))))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))) ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])])]))\n(E ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ())\n((S (()))\n (E (()\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ((1 1)\n         [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n         [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n     (C ())\n     ((S ())\n      (E ((1 1 1)\n          [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n      (C ((Load add1)\n          Apply))\n      ((S ())\n       (E ())\n       (C ())\n       (D #<unspecified>))))))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))) ([((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])])]\n    ()))\n(E (()\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C (Apply))\n((S ())\n (E ((1)\n     [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1)\n      [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1)\n       [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ((1 1)\n        [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n        [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n    (C ())\n    ((S ())\n     (E ((1 1 1)\n         [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n     (C ((Load add1)\n         Apply))\n     ((S ())\n      (E ())\n      (C ())\n      (D #<unspecified>)))))))\n(S ())\n(E (()\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Position 0)\n    (Load null?)\n    Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))\n((S ())\n (E (()\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ((1 1)\n         [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n         [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n     (C ())\n     ((S ())\n      (E ((1 1 1)\n          [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n      (C ((Load add1)\n          Apply))\n      ((S ())\n       (E ())\n       (C ())\n       (D #<unspecified>))))))))\n(S (()))\n(E (()\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Load null?)\n    Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))\n((S ())\n (E (()\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ((1 1)\n         [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n         [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n     (C ())\n     ((S ())\n      (E ((1 1 1)\n          [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n      (C ((Load add1)\n          Apply))\n      ((S ())\n       (E ())\n       (C ())\n       (D #<unspecified>))))))))\n(S (#<procedure (scheme#null? x)>\n    ()))\n(E (()\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C (Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))\n((S ())\n (E (()\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ((1 1)\n         [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n         [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n     (C ())\n     ((S ())\n      (E ((1 1 1)\n          [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n      (C ((Load add1)\n          Apply))\n      ((S ())\n       (E ())\n       (C ())\n       (D #<unspecified>))))))))\n(S (#t))\n(E (()\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))\n((S ())\n (E (()\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ((1 1)\n         [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n         [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n     (C ())\n     ((S ())\n      (E ((1 1 1)\n          [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n      (C ((Load add1)\n          Apply))\n      ((S ())\n       (E ())\n       (C ())\n       (D #<unspecified>))))))))\n(S ())\n(E (()\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Load zero)))\n((S ())\n (E (()\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ((1 1)\n         [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n         [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n     (C ())\n     ((S ())\n      (E ((1 1 1)\n          [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n      (C ((Load add1)\n          Apply))\n      ((S ())\n       (E ())\n       (C ())\n       (D #<unspecified>))))))))\n(S (0))\n(E (()\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ())\n((S ())\n (E (()\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ((1 1)\n         [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n         [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n     (C ())\n     ((S ())\n      (E ((1 1 1)\n          [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n      (C ((Load add1)\n          Apply))\n      ((S ())\n       (E ())\n       (C ())\n       (D #<unspecified>))))))))\n(S (0))\n(E (()\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ())\n((S ())\n (E ((1)\n     [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1)\n      [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1)\n       [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ((1 1)\n        [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n        [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n    (C ())\n    ((S ())\n     (E ((1 1 1)\n         [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n     (C ((Load add1)\n         Apply))\n     ((S ())\n      (E ())\n      (C ())\n      (D #<unspecified>)))))))\n(S (0))\n(E ((1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Load add1)\n    Apply))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S (#<procedure (chicken.base#add1 n)>\n    0))\n(E ((1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C (Apply))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S (1))\n(E ((1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ())\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S (1))\n(E ((1)\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ())\n((S ())\n (E ((1 1)\n     [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1 1)\n      [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1 1)\n       [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ())\n    (C ())\n    (D #<unspecified>)))))\n(S (1))\n(E ((1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Load add1)\n    Apply))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S (#<procedure (chicken.base#add1 n)>\n    1))\n(E ((1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C (Apply))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S (2))\n(E ((1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ())\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S (2))\n(E ((1 1)\n    [((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()]))\n(C ())\n((S ())\n (E ((1 1 1)\n     [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S (2))\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ((Load add1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#<procedure (chicken.base#add1 n)>\n    2))\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C (Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (3))\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position 1) Apply Apply) ([((Closure ((Position 0) (Position 1) (Position 1) Apply Apply)) (Position 1) Apply) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position 1) Apply (Load add1) Apply))))) ()])]))\n(C ())\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (3))\n(E ())\n(C ())\n(D #<unspecified>)\n(S ())\n(E ())\n(C ((Load ones)\n    (Closure ((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))))\n    Enter\n    (Closure ((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)))\n    Enter\n    (Closure ((Position 0) (Position 1) (Position&Apply 1) Apply))\n    (Position&Apply 1)\n    Exit\n    Exit\n    Apply))\n(D #<unspecified>)\n(S ((1 1 1)))\n(E ())\n(C ((Closure ((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))))\n    Enter\n    (Closure ((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)))\n    Enter\n    (Closure ((Position 0) (Position 1) (Position&Apply 1) Apply))\n    (Position&Apply 1)\n    Exit\n    Exit\n    Apply))\n(D #<unspecified>)\n(S ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]\n    (1 1 1)))\n(E ())\n(C (Enter\n    (Closure ((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)))\n    Enter\n    (Closure ((Position 0) (Position 1) (Position&Apply 1) Apply))\n    (Position&Apply 1)\n    Exit\n    Exit\n    Apply))\n(D #<unspecified>)\n(S ())\n(E ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Closure ((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)))\n    Enter\n    (Closure ((Position 0) (Position 1) (Position&Apply 1) Apply))\n    (Position&Apply 1)\n    Exit\n    Exit\n    Apply))\n((S ((1 1 1)))\n (E ())\n (C ())\n (D #<unspecified>))\n(S ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(E ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C (Enter\n    (Closure ((Position 0) (Position 1) (Position&Apply 1) Apply))\n    (Position&Apply 1)\n    Exit\n    Exit\n    Apply))\n((S ((1 1 1)))\n (E ())\n (C ())\n (D #<unspecified>))\n(S ())\n(E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply))\n    (Position&Apply 1)\n    Exit\n    Exit\n    Apply))\n((S ())\n (E ())\n (C ())\n ((S ((1 1 1)))\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Position&Apply 1)\n    Exit\n    Exit\n    Apply))\n((S ())\n (E ())\n (C ())\n ((S ((1 1 1)))\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S ())\n(E ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))))\n((S ())\n (E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C (Exit\n     Exit\n     Apply))\n ((S ())\n  (E ())\n  (C ())\n  ((S ((1 1 1)))\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))) ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])])]))\n(E ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ())\n((S ())\n (E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C (Exit\n     Exit\n     Apply))\n ((S ())\n  (E ())\n  (C ())\n  ((S ((1 1 1)))\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))) ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])])]))\n(E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C (Exit\n    Exit\n    Apply))\n((S ())\n (E ())\n (C ())\n ((S ((1 1 1)))\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))) ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])])]))\n(E ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C (Exit\n    Apply))\n((S ((1 1 1)))\n (E ())\n (C ())\n (D #<unspecified>))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))) ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])])]\n    (1 1 1)))\n(E ())\n(C (Apply))\n(D #<unspecified>)\n(S ())\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Position 0)\n    (Load null?)\n    Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ((1 1 1)))\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Load null?)\n    Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#<procedure (scheme#null? x)>\n    (1 1 1)))\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C (Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#f))\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ())\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Position 0)\n    (Load cdr)\n    Apply\n    (Position&Apply 1)\n    (Load add1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ((1 1 1)))\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Load cdr)\n    Apply\n    (Position&Apply 1)\n    (Load add1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#<procedure (scheme#cdr x)>\n    (1 1 1)))\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C (Apply\n    (Position&Apply 1)\n    (Load add1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ((1 1)))\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Position&Apply 1)\n    (Load add1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ())\n(E ((1 1)\n    [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Position 0)\n    (Position 1)\n    (Position&Apply 1)\n    Apply))\n((S ())\n (E ((1 1 1)\n     [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S ((1 1)))\n(E ((1 1)\n    [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Position 1)\n    (Position&Apply 1)\n    Apply))\n((S ())\n (E ((1 1 1)\n     [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    (1 1)))\n(E ((1 1)\n    [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Position&Apply 1)\n    Apply))\n((S ())\n (E ((1 1 1)\n     [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S ())\n(E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply))\n    (Position&Apply 1)))\n((S ((1 1)))\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Position&Apply 1)))\n((S ((1 1)))\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ())\n(E ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))))\n((S ())\n (E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ((1 1)))\n  (E ((1 1)\n      [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n  (C (Apply))\n  ((S ())\n   (E ((1 1 1)\n       [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ())\n    (C ())\n    (D #<unspecified>)))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))) ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])])]))\n(E ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ())\n((S ())\n (E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ((1 1)))\n  (E ((1 1)\n      [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n  (C (Apply))\n  ((S ())\n   (E ((1 1 1)\n       [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ())\n    (C ())\n    (D #<unspecified>)))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))) ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])])]))\n(E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ())\n((S ((1 1)))\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))) ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])])]\n    (1 1)))\n(E ((1 1)\n    [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C (Apply))\n((S ())\n (E ((1 1 1)\n     [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S ())\n(E ((1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Position 0)\n    (Load null?)\n    Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ((1 1)))\n(E ((1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Load null?)\n    Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S (#<procedure (scheme#null? x)>\n    (1 1)))\n(E ((1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C (Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S (#f))\n(E ((1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ())\n(E ((1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Position 0)\n    (Load cdr)\n    Apply\n    (Position&Apply 1)\n    (Load add1)\n    Apply))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ((1 1)))\n(E ((1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Load cdr)\n    Apply\n    (Position&Apply 1)\n    (Load add1)\n    Apply))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S (#<procedure (scheme#cdr x)>\n    (1 1)))\n(E ((1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C (Apply\n    (Position&Apply 1)\n    (Load add1)\n    Apply))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ((1)))\n(E ((1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Position&Apply 1)\n    (Load add1)\n    Apply))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ())\n(E ((1)\n    [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Position 0)\n    (Position 1)\n    (Position&Apply 1)\n    Apply))\n((S ())\n (E ((1 1)\n     [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1 1)\n      [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1 1)\n       [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ())\n    (C ())\n    (D #<unspecified>)))))\n(S ((1)))\n(E ((1)\n    [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Position 1)\n    (Position&Apply 1)\n    Apply))\n((S ())\n (E ((1 1)\n     [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1 1)\n      [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1 1)\n       [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ())\n    (C ())\n    (D #<unspecified>)))))\n(S ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    (1)))\n(E ((1)\n    [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Position&Apply 1)\n    Apply))\n((S ())\n (E ((1 1)\n     [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1 1)\n      [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1 1)\n       [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ())\n    (C ())\n    (D #<unspecified>)))))\n(S ())\n(E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply))\n    (Position&Apply 1)))\n((S ((1)))\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Position&Apply 1)))\n((S ((1)))\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S ())\n(E ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))))\n((S ())\n (E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ((1)))\n  (E ((1)\n      [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n  (C (Apply))\n  ((S ())\n   (E ((1 1)\n       [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ((1 1)\n        [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n        [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n    (C ())\n    ((S ())\n     (E ((1 1 1)\n         [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n     (C ((Load add1)\n         Apply))\n     ((S ())\n      (E ())\n      (C ())\n      (D #<unspecified>)))))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))) ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])])]))\n(E ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ())\n((S ())\n (E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ((1)))\n  (E ((1)\n      [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n  (C (Apply))\n  ((S ())\n   (E ((1 1)\n       [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ((1 1)\n        [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n        [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n    (C ())\n    ((S ())\n     (E ((1 1 1)\n         [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n     (C ((Load add1)\n         Apply))\n     ((S ())\n      (E ())\n      (C ())\n      (D #<unspecified>)))))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))) ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])])]))\n(E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ())\n((S ((1)))\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))) ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])])]\n    (1)))\n(E ((1)\n    [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C (Apply))\n((S ())\n (E ((1 1)\n     [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1 1)\n      [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1 1)\n       [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ())\n    (C ())\n    (D #<unspecified>)))))\n(S ())\n(E ((1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Position 0)\n    (Load null?)\n    Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S ((1)))\n(E ((1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Load null?)\n    Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S (#<procedure (scheme#null? x)>\n    (1)))\n(E ((1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C (Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S (#f))\n(E ((1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S ())\n(E ((1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Position 0)\n    (Load cdr)\n    Apply\n    (Position&Apply 1)\n    (Load add1)\n    Apply))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S ((1)))\n(E ((1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Load cdr)\n    Apply\n    (Position&Apply 1)\n    (Load add1)\n    Apply))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S (#<procedure (scheme#cdr x)>\n    (1)))\n(E ((1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C (Apply\n    (Position&Apply 1)\n    (Load add1)\n    Apply))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S (()))\n(E ((1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Position&Apply 1)\n    (Load add1)\n    Apply))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S ())\n(E (()\n    [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Position 0)\n    (Position 1)\n    (Position&Apply 1)\n    Apply))\n((S ())\n (E ((1)\n     [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1)\n      [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1)\n       [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ((1 1)\n        [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n        [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n    (C ())\n    ((S ())\n     (E ((1 1 1)\n         [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n     (C ((Load add1)\n         Apply))\n     ((S ())\n      (E ())\n      (C ())\n      (D #<unspecified>)))))))\n(S (()))\n(E (()\n    [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Position 1)\n    (Position&Apply 1)\n    Apply))\n((S ())\n (E ((1)\n     [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1)\n      [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1)\n       [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ((1 1)\n        [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n        [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n    (C ())\n    ((S ())\n     (E ((1 1 1)\n         [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n     (C ((Load add1)\n         Apply))\n     ((S ())\n      (E ())\n      (C ())\n      (D #<unspecified>)))))))\n(S ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    ()))\n(E (()\n    [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Position&Apply 1)\n    Apply))\n((S ())\n (E ((1)\n     [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1)\n      [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1)\n       [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ((1 1)\n        [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n        [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n    (C ())\n    ((S ())\n     (E ((1 1 1)\n         [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n     (C ((Load add1)\n         Apply))\n     ((S ())\n      (E ())\n      (C ())\n      (D #<unspecified>)))))))\n(S ())\n(E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply))\n    (Position&Apply 1)))\n((S (()))\n (E (()\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ((1 1)\n         [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n         [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n     (C ())\n     ((S ())\n      (E ((1 1 1)\n          [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n      (C ((Load add1)\n          Apply))\n      ((S ())\n       (E ())\n       (C ())\n       (D #<unspecified>))))))))\n(S ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ((Position&Apply 1)))\n((S (()))\n (E (()\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ((1 1)\n         [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n         [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n     (C ())\n     ((S ())\n      (E ((1 1 1)\n          [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n      (C ((Load add1)\n          Apply))\n      ((S ())\n       (E ())\n       (C ())\n       (D #<unspecified>))))))))\n(S ())\n(E ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))))\n((S ())\n (E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S (()))\n  (E (()\n      [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n  (C (Apply))\n  ((S ())\n   (E ((1)\n       [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ((1)\n        [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n        [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n    (C ())\n    ((S ())\n     (E ((1 1)\n         [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n     (C ((Load add1)\n         Apply))\n     ((S ())\n      (E ((1 1)\n          [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n          [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n      (C ())\n      ((S ())\n       (E ((1 1 1)\n           [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n       (C ((Load add1)\n           Apply))\n       ((S ())\n        (E ())\n        (C ())\n        (D #<unspecified>)))))))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))) ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])])]))\n(E ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ())\n((S ())\n (E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S (()))\n  (E (()\n      [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n  (C (Apply))\n  ((S ())\n   (E ((1)\n       [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ((1)\n        [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n        [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n    (C ())\n    ((S ())\n     (E ((1 1)\n         [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n     (C ((Load add1)\n         Apply))\n     ((S ())\n      (E ((1 1)\n          [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n          [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n      (C ())\n      ((S ())\n       (E ((1 1 1)\n           [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n       (C ((Load add1)\n           Apply))\n       ((S ())\n        (E ())\n        (C ())\n        (D #<unspecified>)))))))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))) ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])])]))\n(E ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ())\n((S (()))\n (E (()\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C (Apply))\n ((S ())\n  (E ((1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ((1 1)\n         [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n         [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n     (C ())\n     ((S ())\n      (E ((1 1 1)\n          [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n      (C ((Load add1)\n          Apply))\n      ((S ())\n       (E ())\n       (C ())\n       (D #<unspecified>))))))))\n(S ([((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))) ([((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])])]\n    ()))\n(E (()\n    [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C (Apply))\n((S ())\n (E ((1)\n     [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1)\n      [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1)\n       [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ((1 1)\n        [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n        [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n    (C ())\n    ((S ())\n     (E ((1 1 1)\n         [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n     (C ((Load add1)\n         Apply))\n     ((S ())\n      (E ())\n      (C ())\n      (D #<unspecified>)))))))\n(S ())\n(E (()\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Position 0)\n    (Load null?)\n    Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))\n((S ())\n (E (()\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ((1 1)\n         [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n         [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n     (C ())\n     ((S ())\n      (E ((1 1 1)\n          [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n      (C ((Load add1)\n          Apply))\n      ((S ())\n       (E ())\n       (C ())\n       (D #<unspecified>))))))))\n(S (()))\n(E (()\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Load null?)\n    Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))\n((S ())\n (E (()\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ((1 1)\n         [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n         [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n     (C ())\n     ((S ())\n      (E ((1 1 1)\n          [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n      (C ((Load add1)\n          Apply))\n      ((S ())\n       (E ())\n       (C ())\n       (D #<unspecified>))))))))\n(S (#<procedure (scheme#null? x)>\n    ()))\n(E (()\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C (Apply\n    (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))\n((S ())\n (E (()\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ((1 1)\n         [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n         [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n     (C ())\n     ((S ())\n      (E ((1 1 1)\n          [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n      (C ((Load add1)\n          Apply))\n      ((S ())\n       (E ())\n       (C ())\n       (D #<unspecified>))))))))\n(S (#t))\n(E (()\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))\n((S ())\n (E (()\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ((1 1)\n         [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n         [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n     (C ())\n     ((S ())\n      (E ((1 1 1)\n          [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n      (C ((Load add1)\n          Apply))\n      ((S ())\n       (E ())\n       (C ())\n       (D #<unspecified>))))))))\n(S ())\n(E (()\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Load zero)))\n((S ())\n (E (()\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ((1 1)\n         [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n         [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n     (C ())\n     ((S ())\n      (E ((1 1 1)\n          [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n      (C ((Load add1)\n          Apply))\n      ((S ())\n       (E ())\n       (C ())\n       (D #<unspecified>))))))))\n(S (0))\n(E (()\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ())\n((S ())\n (E (()\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ((1 1)\n         [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n         [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n     (C ())\n     ((S ())\n      (E ((1 1 1)\n          [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n      (C ((Load add1)\n          Apply))\n      ((S ())\n       (E ())\n       (C ())\n       (D #<unspecified>))))))))\n(S (0))\n(E (()\n    [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ())\n((S ())\n (E ((1)\n     [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1)\n      [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1)\n       [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ((1 1)\n        [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n        [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n    (C ())\n    ((S ())\n     (E ((1 1 1)\n         [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n     (C ((Load add1)\n         Apply))\n     ((S ())\n      (E ())\n      (C ())\n      (D #<unspecified>)))))))\n(S (0))\n(E ((1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Load add1)\n    Apply))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S (#<procedure (chicken.base#add1 n)>\n    0))\n(E ((1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C (Apply))\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S (1))\n(E ((1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ())\n((S ())\n (E ((1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ((1 1)\n       [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n       [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n   (C ())\n   ((S ())\n    (E ((1 1 1)\n        [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n    (C ((Load add1)\n        Apply))\n    ((S ())\n     (E ())\n     (C ())\n     (D #<unspecified>))))))\n(S (1))\n(E ((1)\n    [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ())\n((S ())\n (E ((1 1)\n     [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ((1 1)\n      [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n      [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n  (C ())\n  ((S ())\n   (E ((1 1 1)\n       [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n   (C ((Load add1)\n       Apply))\n   ((S ())\n    (E ())\n    (C ())\n    (D #<unspecified>)))))\n(S (1))\n(E ((1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Load add1)\n    Apply))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S (#<procedure (chicken.base#add1 n)>\n    1))\n(E ((1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C (Apply))\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S (2))\n(E ((1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ())\n((S ())\n (E ((1 1)\n     [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n     [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n (C ())\n ((S ())\n  (E ((1 1 1)\n      [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n  (C ((Load add1)\n      Apply))\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S (2))\n(E ((1 1)\n    [((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]\n    [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()]))\n(C ())\n((S ())\n (E ((1 1 1)\n     [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n (C ((Load add1)\n     Apply))\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S (2))\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ((Load add1)\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#<procedure (chicken.base#add1 n)>\n    2))\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C (Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (3))\n(E ((1 1 1)\n    [((Position 0) (Position 1) (Position&Apply 1) Apply) ([((Closure ((Position 0) (Position 1) (Position&Apply 1) Apply)) (Position&Apply 1)) ([((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])] [((Closure ((Position 0) (Load null?) Apply (Test ((Load zero)) ((Position 0) (Load cdr) Apply (Position&Apply 1) (Load add1) Apply))))) ()])]))\n(C ())\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (3))\n(E ())\n(C ())\n(D #<unspecified>)\n")
 (stderr ""))

test/J-operator: pass

(define (test/J-operator _)
  (define E (make-E))
  (let1 (J-term '(J three))
        (⊦= "(J three)" ((○ to-string curryfy) J-term))
        (⊨/error ((○ (value E) curryfy) J-term))
        (⊦= "<[3 #<unspecified>]>"
            (let1 (t ((○ compile⁺ expression->de-bruijn curryfy) J-term))
                  ((○ to-string car status-S last →/compiled⁺*)
                   (status-init '() t)))))
  (let1 (J-term '((λ (L) (² two)) (J (λ (z) z))))
        (⊦= "((λ (L) (² two)) (J (λ (z) z)))" ((○ to-string curryfy) J-term))
        (⊨/error ((○ (value E) curryfy) J-term))
        (⊦= 4
            (let1 (t ((○ compile⁺ expression->de-bruijn curryfy) J-term))
                  ((○ car status-S last →/compiled⁺*) (status-init '() t)))))
  (let1 (J-term '((λ (L) (² (L two))) (J (λ (z) z))))
        (⊦= "((λ (L) (² (L two))) (J (λ (z) z)))"
            ((○ to-string curryfy) J-term))
        (⊨/error ((○ (value E) curryfy) J-term))
        (⊦= 2
            (let1 (t ((○ compile⁺ expression->de-bruijn curryfy) J-term))
                  ((○ car status-S last →/compiled⁺*) (status-init '() t)))))
  (let1 (J-term
          '((λ (x y) (+ ((λ (L) (² (L x))) (J (λ (z) (- (² z) (² two))))) y))
            three
            two))
        (⊦= "(((λ (x) (λ (y) ((+ ((λ (L) (² (L x))) (J (λ (z) ((- (² z)) (² two)))))) y))) three) two)"
            ((○ to-string curryfy) J-term))
        (⊨/error ((○ (value E) curryfy) J-term))
        (let1 (t ((○ compile⁺ expression->de-bruijn curryfy) J-term))
              (⊦= 5 ((○ car status-S last →/compiled⁺*) (status-init '() t)))))
  (let1 (J-term
          '((λ (x y L) (+ (² (L x)) y))
            three
            two
            (J (λ (z) (- (² z) (² two))))))
        (⊦= "((((λ (x) (λ (y) (λ (L) ((+ (² (L x))) y)))) three) two) (J (λ (z) ((- (² z)) (² two)))))"
            ((○ to-string curryfy) J-term))
        (⊨/error ((○ (value E) curryfy) J-term))
        (⊦= 5
            (let1 (t ((○ compile⁺ expression->de-bruijn curryfy) J-term))
                  ((○ car status-S last →/compiled⁺*) (status-init '() t)))))
  (let1 (J-term
          '((λ (k) ((λ (g) (+ (g two) one)) (λ (x) (k x)))) (J (λ (z) z))))
        (⊦= 2
            (let1 (t ((○ compile⁺ expression->de-bruijn curryfy) J-term))
                  ((○ car status-S last →/compiled⁺*) (status-init '() t)))))
  (let1 (J-term
          '((λ (k) ((λ (g) (+ (g two) one)) (λ (x) (² x)))) (J (λ (z) z))))
        (⊦= 5
            (let1 (t ((○ compile⁺ expression->de-bruijn curryfy) J-term))
                  ((○ car status-S last →/compiled⁺*) (status-init '() t)))))
  (let1 (J-term
          '((λ (L x y) (+ (² (L x)) y))
            (J (λ (z) (- (² z) (² two))))
            three
            two))
        (⊨/error ((○ (value E) curryfy) J-term))))
((eta 0.006)
 (memory #(12582912 2978064 1048576))
 (stdout
   "(S ())\n(E ())\n(C ((Load three)\n    Jump\n    Apply))\n(D #<unspecified>)\n(S (3))\n(E ())\n(C (Jump\n    Apply))\n(D #<unspecified>)\n(S (<|#<unspecified>|>\n    3))\n(E ())\n(C (Apply))\n(D #<unspecified>)\n(S (<[3 #<unspecified>]>))\n(E ())\n(C ())\n(D #<unspecified>)\n(S ())\n(E ())\n(C ((Closure ((Position 0)))\n    Jump\n    Apply\n    Enter\n    (Load two)\n    (Load ²)\n    Apply\n    Exit))\n(D #<unspecified>)\n(S ([((Position 0)) ()]))\n(E ())\n(C (Jump\n    Apply\n    Enter\n    (Load two)\n    (Load ²)\n    Apply\n    Exit))\n(D #<unspecified>)\n(S (<|#<unspecified>|>\n    [((Position 0)) ()]))\n(E ())\n(C (Apply\n    Enter\n    (Load two)\n    (Load ²)\n    Apply\n    Exit))\n(D #<unspecified>)\n(S (<[[((Position 0)) ()] #<unspecified>]>))\n(E ())\n(C (Enter\n    (Load two)\n    (Load ²)\n    Apply\n    Exit))\n(D #<unspecified>)\n(S ())\n(E (<[[((Position 0)) ()] #<unspecified>]>))\n(C ((Load two)\n    (Load ²)\n    Apply\n    Exit))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (2))\n(E (<[[((Position 0)) ()] #<unspecified>]>))\n(C ((Load ²)\n    Apply\n    Exit))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#<procedure (aux.commons#² x)>\n    2))\n(E (<[[((Position 0)) ()] #<unspecified>]>))\n(C (Apply\n    Exit))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (4))\n(E (<[[((Position 0)) ()] #<unspecified>]>))\n(C (Exit))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (4))\n(E ())\n(C ())\n(D #<unspecified>)\n(S ())\n(E ())\n(C ((Closure ((Position 0)))\n    Jump\n    Apply\n    Enter\n    (Load two)\n    (Position&Apply 0)\n    (Load ²)\n    Apply\n    Exit))\n(D #<unspecified>)\n(S ([((Position 0)) ()]))\n(E ())\n(C (Jump\n    Apply\n    Enter\n    (Load two)\n    (Position&Apply 0)\n    (Load ²)\n    Apply\n    Exit))\n(D #<unspecified>)\n(S (<|#<unspecified>|>\n    [((Position 0)) ()]))\n(E ())\n(C (Apply\n    Enter\n    (Load two)\n    (Position&Apply 0)\n    (Load ²)\n    Apply\n    Exit))\n(D #<unspecified>)\n(S (<[[((Position 0)) ()] #<unspecified>]>))\n(E ())\n(C (Enter\n    (Load two)\n    (Position&Apply 0)\n    (Load ²)\n    Apply\n    Exit))\n(D #<unspecified>)\n(S ())\n(E (<[[((Position 0)) ()] #<unspecified>]>))\n(C ((Load two)\n    (Position&Apply 0)\n    (Load ²)\n    Apply\n    Exit))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (2))\n(E (<[[((Position 0)) ()] #<unspecified>]>))\n(C ((Position&Apply 0)\n    (Load ²)\n    Apply\n    Exit))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ([((Position 0)) ()]\n    2))\n(E (<[[((Position 0)) ()] #<unspecified>]>))\n(C (Apply))\n(D #<unspecified>)\n(S ())\n(E (2))\n(C ((Position 0)))\n((S ())\n (E (<[[((Position 0)) ()] #<unspecified>]>))\n (C ())\n (D #<unspecified>))\n(S (2))\n(E (2))\n(C ())\n((S ())\n (E (<[[((Position 0)) ()] #<unspecified>]>))\n (C ())\n (D #<unspecified>))\n(S (2))\n(E (<[[((Position 0)) ()] #<unspecified>]>))\n(C ())\n(D #<unspecified>)\n(S ())\n(E ())\n(C ((Load two)\n    (Load three)\n    Enter\n    (Closure ((Position 0) (Closure ((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply)) Jump Apply Enter (Position 2) (Position&Apply 0) (Load ²) Apply Exit (Load +) Apply Apply))\n    Exit\n    Apply))\n(D #<unspecified>)\n(S (2))\n(E ())\n(C ((Load three)\n    Enter\n    (Closure ((Position 0) (Closure ((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply)) Jump Apply Enter (Position 2) (Position&Apply 0) (Load ²) Apply Exit (Load +) Apply Apply))\n    Exit\n    Apply))\n(D #<unspecified>)\n(S (3\n    2))\n(E ())\n(C (Enter\n    (Closure ((Position 0) (Closure ((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply)) Jump Apply Enter (Position 2) (Position&Apply 0) (Load ²) Apply Exit (Load +) Apply Apply))\n    Exit\n    Apply))\n(D #<unspecified>)\n(S ())\n(E (3))\n(C ((Closure ((Position 0) (Closure ((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply)) Jump Apply Enter (Position 2) (Position&Apply 0) (Load ²) Apply Exit (Load +) Apply Apply))\n    Exit\n    Apply))\n((S (2))\n (E ())\n (C ())\n (D #<unspecified>))\n(S ([((Position 0) (Closure ((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply)) Jump Apply Enter (Position 2) (Position&Apply 0) (Load ²) Apply Exit (Load +) Apply Apply) (3)]))\n(E (3))\n(C (Exit\n    Apply))\n((S (2))\n (E ())\n (C ())\n (D #<unspecified>))\n(S ([((Position 0) (Closure ((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply)) Jump Apply Enter (Position 2) (Position&Apply 0) (Load ²) Apply Exit (Load +) Apply Apply) (3)]\n    2))\n(E ())\n(C (Apply))\n(D #<unspecified>)\n(S ())\n(E (2\n    3))\n(C ((Position 0)\n    (Closure ((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply))\n    Jump\n    Apply\n    Enter\n    (Position 2)\n    (Position&Apply 0)\n    (Load ²)\n    Apply\n    Exit\n    (Load +)\n    Apply\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (2))\n(E (2\n    3))\n(C ((Closure ((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply))\n    Jump\n    Apply\n    Enter\n    (Position 2)\n    (Position&Apply 0)\n    (Load ²)\n    Apply\n    Exit\n    (Load +)\n    Apply\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ([((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) (2 3)]\n    2))\n(E (2\n    3))\n(C (Jump\n    Apply\n    Enter\n    (Position 2)\n    (Position&Apply 0)\n    (Load ²)\n    Apply\n    Exit\n    (Load +)\n    Apply\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (<|(S ())\n(E ())\n(C ())\n(D #<unspecified>)|>\n    [((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) (2 3)]\n    2))\n(E (2\n    3))\n(C (Apply\n    Enter\n    (Position 2)\n    (Position&Apply 0)\n    (Load ²)\n    Apply\n    Exit\n    (Load +)\n    Apply\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) (2 3)] (S ())\n(E ())\n(C ())\n(D #<unspecified>)]>\n    2))\n(E (2\n    3))\n(C (Enter\n    (Position 2)\n    (Position&Apply 0)\n    (Load ²)\n    Apply\n    Exit\n    (Load +)\n    Apply\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ())\n(E (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) (2 3)] (S ())\n(E ())\n(C ())\n(D #<unspecified>)]>\n    2\n    3))\n(C ((Position 2)\n    (Position&Apply 0)\n    (Load ²)\n    Apply\n    Exit\n    (Load +)\n    Apply\n    Apply))\n((S (2))\n (E ())\n (C ())\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S (3))\n(E (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) (2 3)] (S ())\n(E ())\n(C ())\n(D #<unspecified>)]>\n    2\n    3))\n(C ((Position&Apply 0)\n    (Load ²)\n    Apply\n    Exit\n    (Load +)\n    Apply\n    Apply))\n((S (2))\n (E ())\n (C ())\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S ([((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) (2 3)]\n    3))\n(E ())\n(C (Apply))\n(D #<unspecified>)\n(S ())\n(E (3\n    2\n    3))\n(C ((Load two)\n    (Load ²)\n    Apply\n    (Position 0)\n    (Load ²)\n    Apply\n    (Load -)\n    Apply\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (2))\n(E (3\n    2\n    3))\n(C ((Load ²)\n    Apply\n    (Position 0)\n    (Load ²)\n    Apply\n    (Load -)\n    Apply\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#<procedure (aux.commons#² x)>\n    2))\n(E (3\n    2\n    3))\n(C (Apply\n    (Position 0)\n    (Load ²)\n    Apply\n    (Load -)\n    Apply\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (4))\n(E (3\n    2\n    3))\n(C ((Position 0)\n    (Load ²)\n    Apply\n    (Load -)\n    Apply\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (3\n    4))\n(E (3\n    2\n    3))\n(C ((Load ²)\n    Apply\n    (Load -)\n    Apply\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#<procedure (aux.commons#² x)>\n    3\n    4))\n(E (3\n    2\n    3))\n(C (Apply\n    (Load -)\n    Apply\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (9\n    4))\n(E (3\n    2\n    3))\n(C ((Load -)\n    Apply\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#<procedure (? x)>\n    9\n    4))\n(E (3\n    2\n    3))\n(C (Apply\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (#<procedure (? y)>\n    4))\n(E (3\n    2\n    3))\n(C (Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (5))\n(E (3\n    2\n    3))\n(C ())\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (5))\n(E ())\n(C ())\n(D #<unspecified>)\n(S ())\n(E ())\n(C ((Closure ((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply))\n    Jump\n    Apply\n    (Load two)\n    (Load three)\n    Enter\n    (Closure ((Closure ((Position 1) (Position 2) (Position&Apply 0) (Load ²) Apply (Load +) Apply Apply))))\n    Exit\n    Apply\n    Apply))\n(D #<unspecified>)\n(S ([((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()]))\n(E ())\n(C (Jump\n    Apply\n    (Load two)\n    (Load three)\n    Enter\n    (Closure ((Closure ((Position 1) (Position 2) (Position&Apply 0) (Load ²) Apply (Load +) Apply Apply))))\n    Exit\n    Apply\n    Apply))\n(D #<unspecified>)\n(S (<|#<unspecified>|>\n    [((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()]))\n(E ())\n(C (Apply\n    (Load two)\n    (Load three)\n    Enter\n    (Closure ((Closure ((Position 1) (Position 2) (Position&Apply 0) (Load ²) Apply (Load +) Apply Apply))))\n    Exit\n    Apply\n    Apply))\n(D #<unspecified>)\n(S (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>))\n(E ())\n(C ((Load two)\n    (Load three)\n    Enter\n    (Closure ((Closure ((Position 1) (Position 2) (Position&Apply 0) (Load ²) Apply (Load +) Apply Apply))))\n    Exit\n    Apply\n    Apply))\n(D #<unspecified>)\n(S (2\n    <[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>))\n(E ())\n(C ((Load three)\n    Enter\n    (Closure ((Closure ((Position 1) (Position 2) (Position&Apply 0) (Load ²) Apply (Load +) Apply Apply))))\n    Exit\n    Apply\n    Apply))\n(D #<unspecified>)\n(S (3\n    2\n    <[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>))\n(E ())\n(C (Enter\n    (Closure ((Closure ((Position 1) (Position 2) (Position&Apply 0) (Load ²) Apply (Load +) Apply Apply))))\n    Exit\n    Apply\n    Apply))\n(D #<unspecified>)\n(S ())\n(E (3))\n(C ((Closure ((Closure ((Position 1) (Position 2) (Position&Apply 0) (Load ²) Apply (Load +) Apply Apply))))\n    Exit\n    Apply\n    Apply))\n((S (2\n     <[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>))\n (E ())\n (C ())\n (D #<unspecified>))\n(S ([((Closure ((Position 1) (Position 2) (Position&Apply 0) (Load ²) Apply (Load +) Apply Apply))) (3)]))\n(E (3))\n(C (Exit\n    Apply\n    Apply))\n((S (2\n     <[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>))\n (E ())\n (C ())\n (D #<unspecified>))\n(S ([((Closure ((Position 1) (Position 2) (Position&Apply 0) (Load ²) Apply (Load +) Apply Apply))) (3)]\n    2\n    <[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>))\n(E ())\n(C (Apply\n    Apply))\n(D #<unspecified>)\n(S ())\n(E (2\n    3))\n(C ((Closure ((Position 1) (Position 2) (Position&Apply 0) (Load ²) Apply (Load +) Apply Apply))))\n((S (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>))\n (E ())\n (C (Apply))\n (D #<unspecified>))\n(S ([((Position 1) (Position 2) (Position&Apply 0) (Load ²) Apply (Load +) Apply Apply) (2 3)]))\n(E (2\n    3))\n(C ())\n((S (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>))\n (E ())\n (C (Apply))\n (D #<unspecified>))\n(S ([((Position 1) (Position 2) (Position&Apply 0) (Load ²) Apply (Load +) Apply Apply) (2 3)]\n    <[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>))\n(E ())\n(C (Apply))\n(D #<unspecified>)\n(S ())\n(E (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>\n    2\n    3))\n(C ((Position 1)\n    (Position 2)\n    (Position&Apply 0)\n    (Load ²)\n    Apply\n    (Load +)\n    Apply\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (2))\n(E (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>\n    2\n    3))\n(C ((Position 2)\n    (Position&Apply 0)\n    (Load ²)\n    Apply\n    (Load +)\n    Apply\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (3\n    2))\n(E (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>\n    2\n    3))\n(C ((Position&Apply 0)\n    (Load ²)\n    Apply\n    (Load +)\n    Apply\n    Apply))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ([((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()]\n    3))\n(E (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>\n    2\n    3))\n(C (Apply))\n(D #<unspecified>)\n(S ())\n(E (3))\n(C ((Load two)\n    (Load ²)\n    Apply\n    (Position 0)\n    (Load ²)\n    Apply\n    (Load -)\n    Apply\n    Apply))\n((S ())\n (E (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>\n     2\n     3))\n (C ())\n (D #<unspecified>))\n(S (2))\n(E (3))\n(C ((Load ²)\n    Apply\n    (Position 0)\n    (Load ²)\n    Apply\n    (Load -)\n    Apply\n    Apply))\n((S ())\n (E (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>\n     2\n     3))\n (C ())\n (D #<unspecified>))\n(S (#<procedure (aux.commons#² x)>\n    2))\n(E (3))\n(C (Apply\n    (Position 0)\n    (Load ²)\n    Apply\n    (Load -)\n    Apply\n    Apply))\n((S ())\n (E (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>\n     2\n     3))\n (C ())\n (D #<unspecified>))\n(S (4))\n(E (3))\n(C ((Position 0)\n    (Load ²)\n    Apply\n    (Load -)\n    Apply\n    Apply))\n((S ())\n (E (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>\n     2\n     3))\n (C ())\n (D #<unspecified>))\n(S (3\n    4))\n(E (3))\n(C ((Load ²)\n    Apply\n    (Load -)\n    Apply\n    Apply))\n((S ())\n (E (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>\n     2\n     3))\n (C ())\n (D #<unspecified>))\n(S (#<procedure (aux.commons#² x)>\n    3\n    4))\n(E (3))\n(C (Apply\n    (Load -)\n    Apply\n    Apply))\n((S ())\n (E (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>\n     2\n     3))\n (C ())\n (D #<unspecified>))\n(S (9\n    4))\n(E (3))\n(C ((Load -)\n    Apply\n    Apply))\n((S ())\n (E (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>\n     2\n     3))\n (C ())\n (D #<unspecified>))\n(S (#<procedure (? x)>\n    9\n    4))\n(E (3))\n(C (Apply\n    Apply))\n((S ())\n (E (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>\n     2\n     3))\n (C ())\n (D #<unspecified>))\n(S (#<procedure (? y)>\n    4))\n(E (3))\n(C (Apply))\n((S ())\n (E (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>\n     2\n     3))\n (C ())\n (D #<unspecified>))\n(S (5))\n(E (3))\n(C ())\n((S ())\n (E (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>\n     2\n     3))\n (C ())\n (D #<unspecified>))\n(S (5))\n(E (<[[((Load two) (Load ²) Apply (Position 0) (Load ²) Apply (Load -) Apply Apply) ()] #<unspecified>]>\n    2\n    3))\n(C ())\n(D #<unspecified>)\n(S ())\n(E ())\n(C ((Closure ((Position 0)))\n    Jump\n    Apply\n    Enter\n    (Closure ((Position 0) (Position&Apply 1)))\n    Enter\n    (Load one)\n    (Load two)\n    (Position&Apply 0)\n    (Load +)\n    Apply\n    Apply\n    Exit\n    Exit))\n(D #<unspecified>)\n(S ([((Position 0)) ()]))\n(E ())\n(C (Jump\n    Apply\n    Enter\n    (Closure ((Position 0) (Position&Apply 1)))\n    Enter\n    (Load one)\n    (Load two)\n    (Position&Apply 0)\n    (Load +)\n    Apply\n    Apply\n    Exit\n    Exit))\n(D #<unspecified>)\n(S (<|#<unspecified>|>\n    [((Position 0)) ()]))\n(E ())\n(C (Apply\n    Enter\n    (Closure ((Position 0) (Position&Apply 1)))\n    Enter\n    (Load one)\n    (Load two)\n    (Position&Apply 0)\n    (Load +)\n    Apply\n    Apply\n    Exit\n    Exit))\n(D #<unspecified>)\n(S (<[[((Position 0)) ()] #<unspecified>]>))\n(E ())\n(C (Enter\n    (Closure ((Position 0) (Position&Apply 1)))\n    Enter\n    (Load one)\n    (Load two)\n    (Position&Apply 0)\n    (Load +)\n    Apply\n    Apply\n    Exit\n    Exit))\n(D #<unspecified>)\n(S ())\n(E (<[[((Position 0)) ()] #<unspecified>]>))\n(C ((Closure ((Position 0) (Position&Apply 1)))\n    Enter\n    (Load one)\n    (Load two)\n    (Position&Apply 0)\n    (Load +)\n    Apply\n    Apply\n    Exit\n    Exit))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ([((Position 0) (Position&Apply 1)) (<[[((Position 0)) ()] #<unspecified>]>)]))\n(E (<[[((Position 0)) ()] #<unspecified>]>))\n(C (Enter\n    (Load one)\n    (Load two)\n    (Position&Apply 0)\n    (Load +)\n    Apply\n    Apply\n    Exit\n    Exit))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ())\n(E ([((Position 0) (Position&Apply 1)) (<[[((Position 0)) ()] #<unspecified>]>)]\n    <[[((Position 0)) ()] #<unspecified>]>))\n(C ((Load one)\n    (Load two)\n    (Position&Apply 0)\n    (Load +)\n    Apply\n    Apply\n    Exit\n    Exit))\n((S ())\n (E ())\n (C ())\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S (1))\n(E ([((Position 0) (Position&Apply 1)) (<[[((Position 0)) ()] #<unspecified>]>)]\n    <[[((Position 0)) ()] #<unspecified>]>))\n(C ((Load two)\n    (Position&Apply 0)\n    (Load +)\n    Apply\n    Apply\n    Exit\n    Exit))\n((S ())\n (E ())\n (C ())\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S (2\n    1))\n(E ([((Position 0) (Position&Apply 1)) (<[[((Position 0)) ()] #<unspecified>]>)]\n    <[[((Position 0)) ()] #<unspecified>]>))\n(C ((Position&Apply 0)\n    (Load +)\n    Apply\n    Apply\n    Exit\n    Exit))\n((S ())\n (E ())\n (C ())\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S ())\n(E (2\n    <[[((Position 0)) ()] #<unspecified>]>))\n(C ((Position 0)\n    (Position&Apply 1)))\n((S (1))\n (E ([((Position 0) (Position&Apply 1)) (<[[((Position 0)) ()] #<unspecified>]>)]\n     <[[((Position 0)) ()] #<unspecified>]>))\n (C ((Load +)\n     Apply\n     Apply\n     Exit\n     Exit))\n ((S ())\n  (E ())\n  (C ())\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S (2))\n(E (2\n    <[[((Position 0)) ()] #<unspecified>]>))\n(C ((Position&Apply 1)))\n((S (1))\n (E ([((Position 0) (Position&Apply 1)) (<[[((Position 0)) ()] #<unspecified>]>)]\n     <[[((Position 0)) ()] #<unspecified>]>))\n (C ((Load +)\n     Apply\n     Apply\n     Exit\n     Exit))\n ((S ())\n  (E ())\n  (C ())\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S ([((Position 0)) ()]\n    2))\n(E (2\n    <[[((Position 0)) ()] #<unspecified>]>))\n(C (Apply))\n(D #<unspecified>)\n(S ())\n(E (2))\n(C ((Position 0)))\n((S ())\n (E (2\n     <[[((Position 0)) ()] #<unspecified>]>))\n (C ())\n (D #<unspecified>))\n(S (2))\n(E (2))\n(C ())\n((S ())\n (E (2\n     <[[((Position 0)) ()] #<unspecified>]>))\n (C ())\n (D #<unspecified>))\n(S (2))\n(E (2\n    <[[((Position 0)) ()] #<unspecified>]>))\n(C ())\n(D #<unspecified>)\n(S ())\n(E ())\n(C ((Closure ((Position 0)))\n    Jump\n    Apply\n    Enter\n    (Closure ((Position 0) (Load ²) Apply))\n    Enter\n    (Load one)\n    (Load two)\n    (Position&Apply 0)\n    (Load +)\n    Apply\n    Apply\n    Exit\n    Exit))\n(D #<unspecified>)\n(S ([((Position 0)) ()]))\n(E ())\n(C (Jump\n    Apply\n    Enter\n    (Closure ((Position 0) (Load ²) Apply))\n    Enter\n    (Load one)\n    (Load two)\n    (Position&Apply 0)\n    (Load +)\n    Apply\n    Apply\n    Exit\n    Exit))\n(D #<unspecified>)\n(S (<|#<unspecified>|>\n    [((Position 0)) ()]))\n(E ())\n(C (Apply\n    Enter\n    (Closure ((Position 0) (Load ²) Apply))\n    Enter\n    (Load one)\n    (Load two)\n    (Position&Apply 0)\n    (Load +)\n    Apply\n    Apply\n    Exit\n    Exit))\n(D #<unspecified>)\n(S (<[[((Position 0)) ()] #<unspecified>]>))\n(E ())\n(C (Enter\n    (Closure ((Position 0) (Load ²) Apply))\n    Enter\n    (Load one)\n    (Load two)\n    (Position&Apply 0)\n    (Load +)\n    Apply\n    Apply\n    Exit\n    Exit))\n(D #<unspecified>)\n(S ())\n(E (<[[((Position 0)) ()] #<unspecified>]>))\n(C ((Closure ((Position 0) (Load ²) Apply))\n    Enter\n    (Load one)\n    (Load two)\n    (Position&Apply 0)\n    (Load +)\n    Apply\n    Apply\n    Exit\n    Exit))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ([((Position 0) (Load ²) Apply) (<[[((Position 0)) ()] #<unspecified>]>)]))\n(E (<[[((Position 0)) ()] #<unspecified>]>))\n(C (Enter\n    (Load one)\n    (Load two)\n    (Position&Apply 0)\n    (Load +)\n    Apply\n    Apply\n    Exit\n    Exit))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S ())\n(E ([((Position 0) (Load ²) Apply) (<[[((Position 0)) ()] #<unspecified>]>)]\n    <[[((Position 0)) ()] #<unspecified>]>))\n(C ((Load one)\n    (Load two)\n    (Position&Apply 0)\n    (Load +)\n    Apply\n    Apply\n    Exit\n    Exit))\n((S ())\n (E ())\n (C ())\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S (1))\n(E ([((Position 0) (Load ²) Apply) (<[[((Position 0)) ()] #<unspecified>]>)]\n    <[[((Position 0)) ()] #<unspecified>]>))\n(C ((Load two)\n    (Position&Apply 0)\n    (Load +)\n    Apply\n    Apply\n    Exit\n    Exit))\n((S ())\n (E ())\n (C ())\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S (2\n    1))\n(E ([((Position 0) (Load ²) Apply) (<[[((Position 0)) ()] #<unspecified>]>)]\n    <[[((Position 0)) ()] #<unspecified>]>))\n(C ((Position&Apply 0)\n    (Load +)\n    Apply\n    Apply\n    Exit\n    Exit))\n((S ())\n (E ())\n (C ())\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S ())\n(E (2\n    <[[((Position 0)) ()] #<unspecified>]>))\n(C ((Position 0)\n    (Load ²)\n    Apply))\n((S (1))\n (E ([((Position 0) (Load ²) Apply) (<[[((Position 0)) ()] #<unspecified>]>)]\n     <[[((Position 0)) ()] #<unspecified>]>))\n (C ((Load +)\n     Apply\n     Apply\n     Exit\n     Exit))\n ((S ())\n  (E ())\n  (C ())\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S (2))\n(E (2\n    <[[((Position 0)) ()] #<unspecified>]>))\n(C ((Load ²)\n    Apply))\n((S (1))\n (E ([((Position 0) (Load ²) Apply) (<[[((Position 0)) ()] #<unspecified>]>)]\n     <[[((Position 0)) ()] #<unspecified>]>))\n (C ((Load +)\n     Apply\n     Apply\n     Exit\n     Exit))\n ((S ())\n  (E ())\n  (C ())\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S (#<procedure (aux.commons#² x)>\n    2))\n(E (2\n    <[[((Position 0)) ()] #<unspecified>]>))\n(C (Apply))\n((S (1))\n (E ([((Position 0) (Load ²) Apply) (<[[((Position 0)) ()] #<unspecified>]>)]\n     <[[((Position 0)) ()] #<unspecified>]>))\n (C ((Load +)\n     Apply\n     Apply\n     Exit\n     Exit))\n ((S ())\n  (E ())\n  (C ())\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S (4))\n(E (2\n    <[[((Position 0)) ()] #<unspecified>]>))\n(C ())\n((S (1))\n (E ([((Position 0) (Load ²) Apply) (<[[((Position 0)) ()] #<unspecified>]>)]\n     <[[((Position 0)) ()] #<unspecified>]>))\n (C ((Load +)\n     Apply\n     Apply\n     Exit\n     Exit))\n ((S ())\n  (E ())\n  (C ())\n  ((S ())\n   (E ())\n   (C ())\n   (D #<unspecified>))))\n(S (4\n    1))\n(E ([((Position 0) (Load ²) Apply) (<[[((Position 0)) ()] #<unspecified>]>)]\n    <[[((Position 0)) ()] #<unspecified>]>))\n(C ((Load +)\n    Apply\n    Apply\n    Exit\n    Exit))\n((S ())\n (E ())\n (C ())\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S (#<procedure (? x)>\n    4\n    1))\n(E ([((Position 0) (Load ²) Apply) (<[[((Position 0)) ()] #<unspecified>]>)]\n    <[[((Position 0)) ()] #<unspecified>]>))\n(C (Apply\n    Apply\n    Exit\n    Exit))\n((S ())\n (E ())\n (C ())\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S (#<procedure (? y)>\n    1))\n(E ([((Position 0) (Load ²) Apply) (<[[((Position 0)) ()] #<unspecified>]>)]\n    <[[((Position 0)) ()] #<unspecified>]>))\n(C (Apply\n    Exit\n    Exit))\n((S ())\n (E ())\n (C ())\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S (5))\n(E ([((Position 0) (Load ²) Apply) (<[[((Position 0)) ()] #<unspecified>]>)]\n    <[[((Position 0)) ()] #<unspecified>]>))\n(C (Exit\n    Exit))\n((S ())\n (E ())\n (C ())\n ((S ())\n  (E ())\n  (C ())\n  (D #<unspecified>)))\n(S (5))\n(E (<[[((Position 0)) ()] #<unspecified>]>))\n(C (Exit))\n((S ())\n (E ())\n (C ())\n (D #<unspecified>))\n(S (5))\n(E ())\n(C ())\n(D #<unspecified>)\n")
 (stderr ""))

test/if-non-tail: pass

(define (test/if-non-tail _)
  (let* ((E ((extend E₀)
             `(add1 unquote add1)
             '(one . 1)
             '(two . 2)
             '(three . 3)
             '(t . #t)
             '(f . #f)
             `(+ unquote (λ (x) (λ (y) (+ x y))))))
         (run (λ (comp →)
                 (λ (sexp)
                    (let1 (t ((○ comp expression->de-bruijn curryfy) sexp))
                          ((○ car status-S last (rtc (→ E)))
                           (status-init '() t)))))))
    (for-each
      (λ (sexp)
         (let1 (v ((○ (value E) curryfy) sexp))
               (⊦= v ((run compile →/compiled) sexp))
               (⊦= v ((run compile⁺ →/compiled⁺) sexp))))
      '((add1 (cond (f one) (else two)))
        (add1 (cond (t one) (else two)))
        (add1 ((λ (x) (cond (x two) (else three))) f))
        ((λ (x) (cond (x one) (else two))) f)
        (+ (cond (f one) (t two) (else three)) (cond (t one) (else two)))))
    (⊦= "((Load f) (Test ((Load one)) ((Load two))) (Load add1) Apply)"
        ((○ to-string compile expression->de-bruijn curryfy)
         '(add1 (cond (f one) (else two)))))))
((eta 0.0) (memory #(12582912 2895600 1048576)) (stdout "") (stderr ""))

test/curryfy-clauses: pass

(define (test/curryfy-clauses _)
  (⊦= "(((f a) b) c)" ((○ to-string curryfy) '(f a b c)))
  (⊦= "(λ (x) (λ (y) (λ (z) x)))" ((○ to-string curryfy) '(λ (x y z) x)))
  (⊦= "(if p a b)" ((○ to-string curryfy) '(cond (p a) (else b))))
  (⊨/error (curryfy '(cond (p a))))
  (⊨/error (curryfy '(f)))
  (⊨/error (curryfy '(λ (x) a b)))
  (⊨/error (curryfy '(λ (x y) a b)))
  (⊨/error (curryfy '(λ () a)))
  (⊨/error (curryfy '(λ (x))))
  (⊨/error (curryfy '()))
  (⊨/error (curryfy 3))
  (⊨/error (Lambda "x" (Id 'y)))
  (⊨/error ((value₊ E₀) (J₊))))
((eta 0.0) (memory #(12582912 2912280 1048576)) (stdout "") (stderr ""))
Categories: scheme 

See also

The (aux anthropic) module The Anthropic Messages API, offline The (aux cml) module Events, threads, synchronous variables, the library and I/O The (aux hakaru10) modules Random sources, distributions, the language, exact inference and examples The (aux kanren) modules Arithmetic, dates, presentation of answers and a union-find miniKanren The (aux games dice-of-doom) module Dice of Doom The (aux schemer seasoned) module The Seasoned Schemer The (aux continuation) modules Classic operators, escapers, amb and Collatz sequences The (aux category) modules Monads: list, maybe, probability, ziplist, difference lists and state The (aux timsort) module Sorting and the trace buffer The (aux fds) modules Functional queues and union-find The (aux sxml) module Rendering SXML to HTML The (aux variable) module Logic variables introduced by fresh The (aux tabling) module Memoization and tabled definitions The (aux commons) module Learning tests for CHICKEN Scheme Promises delay and make-promise The Ackermann function On unary numbers, as lists Concurrent ML for CHICKEN Scheme Porting SML/NJ CML as the (aux cml) library CHICKEN Scheme Versions and implementation notes The SBRAL data structure Skew Binary Random-Access Lists Pattern matching Scheme macrology: a generalized pattern matcher The (aux hansei) modules Inference, random sources, lazy lists, logic programming and example models The (aux nondeterministic) module Learning tests for Scheme The (aux stream) modules Streams, streams after SICP, and sequences and power series The (aux unittest) module Bootstrapping a unittest framework Scheme lang: Chez, 48 and Chicken Some docs, refs and containers, respectively. The Reasoned Schemer miniKanren, microKanren and some implementations Aggregation predicates for µkanren Groups, window functions, sets and enumerations miniKanren, live and untagged Quine generation via relational interpreters Pure, declarative, and constructive arithmetic relations A declarative pearl Final shift for call/cc Direct implementation of shift and reset Call with Current Continuation Patterns Cogen in six lines The Seasoned Schemer The Little Schemer Adding generic functions to Scheme Handling control