(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