;; full trace of example on pp 173-177.

  (text-example-1.2
      "let index 
            = proc (n)
               letrec inner2 (lst)
                 % find position of n in lst else raise error
                 % exception 
                  = if null?(lst) then raise 99       
                    else if zero?(-(car(lst),n)) then 0
                    else let v = (inner2 cdr(lst))
                         in -(v,-1)
               in proc (lst)
                   try (inner2 lst)
                   catch (x) -1
       in ((index 5) list(2, 3))"
      -1)


Welcome to DrScheme, version 299.400p1.
Language: (module ...).
drscheme-init.scm plt209.1.5 10feb2005
lecture09/exceptions/interp.scm 15-Mar-06
|(value-of/k
   #(struct:let-exp
     index
     #(struct:proc-exp
       n
       #(struct:letrec-exp
         inner2
         lst
         #(struct:if-exp
           #(struct:unop-exp
             #(struct:null?-unop)
             #(struct:var-exp lst))
           #(struct:raise-exp #(struct:const-exp 99))
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:zero?-unop)
               #(struct:diff-exp
                 #(struct:unop-exp
                   #(struct:car-unop)
                   #(struct:var-exp lst))
                 #(struct:var-exp n)))
             #(struct:const-exp 0)
             #(struct:diff-exp
               #(struct:call-exp
                 #(struct:var-exp inner2)
                 #(struct:unop-exp
                   #(struct:cdr-unop)
                   #(struct:var-exp lst)))
               #(struct:const-exp -1))))
         #(struct:proc-exp
           lst
           #(struct:try-exp
             #(struct:call-exp
               #(struct:var-exp inner2)
               #(struct:var-exp lst))
             x
             #(struct:const-exp -1)))))
     #(struct:call-exp
       #(struct:call-exp
         #(struct:var-exp index)
         #(struct:const-exp 5))
       #(struct:const-list-exp (2 3))))
   ((i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:end-cont))
|(value-of/k
   #(struct:call-exp
     #(struct:proc-exp
       index
       #(struct:call-exp
         #(struct:call-exp
           #(struct:var-exp index)
           #(struct:const-exp 5))
         #(struct:const-list-exp (2 3))))
     #(struct:proc-exp
       n
       #(struct:letrec-exp
         inner2
         lst
         #(struct:if-exp
           #(struct:unop-exp
             #(struct:null?-unop)
             #(struct:var-exp lst))
           #(struct:raise-exp #(struct:const-exp 99))
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:zero?-unop)
               #(struct:diff-exp
                 #(struct:unop-exp
                   #(struct:car-unop)
                   #(struct:var-exp lst))
                 #(struct:var-exp n)))
             #(struct:const-exp 0)
             #(struct:diff-exp
               #(struct:call-exp
                 #(struct:var-exp inner2)
                 #(struct:unop-exp
                   #(struct:cdr-unop)
                   #(struct:var-exp lst)))
               #(struct:const-exp -1))))
         #(struct:proc-exp
           lst
           #(struct:try-exp
             #(struct:call-exp
               #(struct:var-exp inner2)
               #(struct:var-exp lst))
             x
             #(struct:const-exp -1))))))
   ((i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:end-cont))
|(value-of/k
   #(struct:proc-exp
     index
     #(struct:call-exp
       #(struct:call-exp
         #(struct:var-exp index)
         #(struct:const-exp 5))
       #(struct:const-list-exp (2 3))))
   ((i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:rator-cont
     #(struct:proc-exp
       n
       #(struct:letrec-exp
         inner2
         lst
         #(struct:if-exp
           #(struct:unop-exp
             #(struct:null?-unop)
             #(struct:var-exp lst))
           #(struct:raise-exp #(struct:const-exp 99))
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:zero?-unop)
               #(struct:diff-exp
                 #(struct:unop-exp
                   #(struct:car-unop)
                   #(struct:var-exp lst))
                 #(struct:var-exp n)))
             #(struct:const-exp 0)
             #(struct:diff-exp
               #(struct:call-exp
                 #(struct:var-exp inner2)
                 #(struct:unop-exp
                   #(struct:cdr-unop)
                   #(struct:var-exp lst)))
               #(struct:const-exp -1))))
         #(struct:proc-exp
           lst
           #(struct:try-exp
             #(struct:call-exp
               #(struct:var-exp inner2)
               #(struct:var-exp lst))
             x
             #(struct:const-exp -1)))))
     ((i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:end-cont)))
|(apply-cont
   #(struct:rator-cont
     #(struct:proc-exp
       n
       #(struct:letrec-exp
         inner2
         lst
         #(struct:if-exp
           #(struct:unop-exp
             #(struct:null?-unop)
             #(struct:var-exp lst))
           #(struct:raise-exp #(struct:const-exp 99))
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:zero?-unop)
               #(struct:diff-exp
                 #(struct:unop-exp
                   #(struct:car-unop)
                   #(struct:var-exp lst))
                 #(struct:var-exp n)))
             #(struct:const-exp 0)
             #(struct:diff-exp
               #(struct:call-exp
                 #(struct:var-exp inner2)
                 #(struct:unop-exp
                   #(struct:cdr-unop)
                   #(struct:var-exp lst)))
               #(struct:const-exp -1))))
         #(struct:proc-exp
           lst
           #(struct:try-exp
             #(struct:call-exp
               #(struct:var-exp inner2)
               #(struct:var-exp lst))
             x
             #(struct:const-exp -1)))))
     ((i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:end-cont))
   #(struct:proc-val
     #(struct:procedure
       index
       #(struct:call-exp
         #(struct:call-exp
           #(struct:var-exp index)
           #(struct:const-exp 5))
         #(struct:const-list-exp (2 3)))
       ((i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10))))))
|(value-of/k
   #(struct:proc-exp
     n
     #(struct:letrec-exp
       inner2
       lst
       #(struct:if-exp
         #(struct:unop-exp
           #(struct:null?-unop)
           #(struct:var-exp lst))
         #(struct:raise-exp #(struct:const-exp 99))
         #(struct:if-exp
           #(struct:unop-exp
             #(struct:zero?-unop)
             #(struct:diff-exp
               #(struct:unop-exp
                 #(struct:car-unop)
                 #(struct:var-exp lst))
               #(struct:var-exp n)))
           #(struct:const-exp 0)
           #(struct:diff-exp
             #(struct:call-exp
               #(struct:var-exp inner2)
               #(struct:unop-exp
                 #(struct:cdr-unop)
                 #(struct:var-exp lst)))
             #(struct:const-exp -1))))
       #(struct:proc-exp
         lst
         #(struct:try-exp
           #(struct:call-exp
             #(struct:var-exp inner2)
             #(struct:var-exp lst))
           x
           #(struct:const-exp -1)))))
   ((i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:rand-cont
     #(struct:proc-val
       #(struct:procedure
         index
         #(struct:call-exp
           #(struct:call-exp
             #(struct:var-exp index)
             #(struct:const-exp 5))
           #(struct:const-list-exp (2 3)))
         ((i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))))
     #(struct:end-cont)))
|(apply-cont
   #(struct:rand-cont
     #(struct:proc-val
       #(struct:procedure
         index
         #(struct:call-exp
           #(struct:call-exp
             #(struct:var-exp index)
             #(struct:const-exp 5))
           #(struct:const-list-exp (2 3)))
         ((i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))))
     #(struct:end-cont))
   #(struct:proc-val
     #(struct:procedure
       n
       #(struct:letrec-exp
         inner2
         lst
         #(struct:if-exp
           #(struct:unop-exp
             #(struct:null?-unop)
             #(struct:var-exp lst))
           #(struct:raise-exp #(struct:const-exp 99))
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:zero?-unop)
               #(struct:diff-exp
                 #(struct:unop-exp
                   #(struct:car-unop)
                   #(struct:var-exp lst))
                 #(struct:var-exp n)))
             #(struct:const-exp 0)
             #(struct:diff-exp
               #(struct:call-exp
                 #(struct:var-exp inner2)
                 #(struct:unop-exp
                   #(struct:cdr-unop)
                   #(struct:var-exp lst)))
               #(struct:const-exp -1))))
         #(struct:proc-exp
           lst
           #(struct:try-exp
             #(struct:call-exp
               #(struct:var-exp inner2)
               #(struct:var-exp lst))
             x
             #(struct:const-exp -1))))
       ((i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10))))))
|(value-of/k
   #(struct:call-exp
     #(struct:call-exp
       #(struct:var-exp index)
       #(struct:const-exp 5))
     #(struct:const-list-exp (2 3)))
   ((index
     #(struct:proc-val
       #(struct:procedure
         n
         #(struct:letrec-exp
           inner2
           lst
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:null?-unop)
               #(struct:var-exp lst))
             #(struct:raise-exp #(struct:const-exp 99))
             #(struct:if-exp
               #(struct:unop-exp
                 #(struct:zero?-unop)
                 #(struct:diff-exp
                   #(struct:unop-exp
                     #(struct:car-unop)
                     #(struct:var-exp lst))
                   #(struct:var-exp n)))
               #(struct:const-exp 0)
               #(struct:diff-exp
                 #(struct:call-exp
                   #(struct:var-exp inner2)
                   #(struct:unop-exp
                     #(struct:cdr-unop)
                     #(struct:var-exp lst)))
                 #(struct:const-exp -1))))
           #(struct:proc-exp
             lst
             #(struct:try-exp
               #(struct:call-exp
                 #(struct:var-exp inner2)
                 #(struct:var-exp lst))
               x
               #(struct:const-exp -1))))
         ((i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10))))))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:end-cont))
|(value-of/k
   #(struct:call-exp #(struct:var-exp index) #(struct:const-exp 5))
   ((index
     #(struct:proc-val
       #(struct:procedure
         n
         #(struct:letrec-exp
           inner2
           lst
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:null?-unop)
               #(struct:var-exp lst))
             #(struct:raise-exp #(struct:const-exp 99))
             #(struct:if-exp
               #(struct:unop-exp
                 #(struct:zero?-unop)
                 #(struct:diff-exp
                   #(struct:unop-exp
                     #(struct:car-unop)
                     #(struct:var-exp lst))
                   #(struct:var-exp n)))
               #(struct:const-exp 0)
               #(struct:diff-exp
                 #(struct:call-exp
                   #(struct:var-exp inner2)
                   #(struct:unop-exp
                     #(struct:cdr-unop)
                     #(struct:var-exp lst)))
                 #(struct:const-exp -1))))
           #(struct:proc-exp
             lst
             #(struct:try-exp
               #(struct:call-exp
                 #(struct:var-exp inner2)
                 #(struct:var-exp lst))
               x
               #(struct:const-exp -1))))
         ((i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10))))))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:rator-cont
     #(struct:const-list-exp (2 3))
     ((index
       #(struct:proc-val
         #(struct:procedure
           n
           #(struct:letrec-exp
             inner2
             lst
             #(struct:if-exp
               #(struct:unop-exp
                 #(struct:null?-unop)
                 #(struct:var-exp lst))
               #(struct:raise-exp #(struct:const-exp 99))
               #(struct:if-exp
                 #(struct:unop-exp
                   #(struct:zero?-unop)
                   #(struct:diff-exp
                     #(struct:unop-exp
                       #(struct:car-unop)
                       #(struct:var-exp lst))
                     #(struct:var-exp n)))
                 #(struct:const-exp 0)
                 #(struct:diff-exp
                   #(struct:call-exp
                     #(struct:var-exp inner2)
                     #(struct:unop-exp
                       #(struct:cdr-unop)
                       #(struct:var-exp lst)))
                   #(struct:const-exp -1))))
             #(struct:proc-exp
               lst
               #(struct:try-exp
                 #(struct:call-exp
                   #(struct:var-exp inner2)
                   #(struct:var-exp lst))
                 x
                 #(struct:const-exp -1))))
           ((i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10))))))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:end-cont)))
|(value-of/k
   #(struct:var-exp index)
   ((index
     #(struct:proc-val
       #(struct:procedure
         n
         #(struct:letrec-exp
           inner2
           lst
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:null?-unop)
               #(struct:var-exp lst))
             #(struct:raise-exp #(struct:const-exp 99))
             #(struct:if-exp
               #(struct:unop-exp
                 #(struct:zero?-unop)
                 #(struct:diff-exp
                   #(struct:unop-exp
                     #(struct:car-unop)
                     #(struct:var-exp lst))
                   #(struct:var-exp n)))
               #(struct:const-exp 0)
               #(struct:diff-exp
                 #(struct:call-exp
                   #(struct:var-exp inner2)
                   #(struct:unop-exp
                     #(struct:cdr-unop)
                     #(struct:var-exp lst)))
                 #(struct:const-exp -1))))
           #(struct:proc-exp
             lst
             #(struct:try-exp
               #(struct:call-exp
                 #(struct:var-exp inner2)
                 #(struct:var-exp lst))
               x
               #(struct:const-exp -1))))
         ((i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10))))))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:rator-cont
     #(struct:const-exp 5)
     ((index
       #(struct:proc-val
         #(struct:procedure
           n
           #(struct:letrec-exp
             inner2
             lst
             #(struct:if-exp
               #(struct:unop-exp
                 #(struct:null?-unop)
                 #(struct:var-exp lst))
               #(struct:raise-exp #(struct:const-exp 99))
               #(struct:if-exp
                 #(struct:unop-exp
                   #(struct:zero?-unop)
                   #(struct:diff-exp
                     #(struct:unop-exp
                       #(struct:car-unop)
                       #(struct:var-exp lst))
                     #(struct:var-exp n)))
                 #(struct:const-exp 0)
                 #(struct:diff-exp
                   #(struct:call-exp
                     #(struct:var-exp inner2)
                     #(struct:unop-exp
                       #(struct:cdr-unop)
                       #(struct:var-exp lst)))
                   #(struct:const-exp -1))))
             #(struct:proc-exp
               lst
               #(struct:try-exp
                 #(struct:call-exp
                   #(struct:var-exp inner2)
                   #(struct:var-exp lst))
                 x
                 #(struct:const-exp -1))))
           ((i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10))))))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:rator-cont
       #(struct:const-list-exp (2 3))
       ((index
         #(struct:proc-val
           #(struct:procedure
             n
             #(struct:letrec-exp
               inner2
               lst
               #(struct:if-exp
                 #(struct:unop-exp
                   #(struct:null?-unop)
                   #(struct:var-exp lst))
                 #(struct:raise-exp #(struct:const-exp 99))
                 #(struct:if-exp
                   #(struct:unop-exp
                     #(struct:zero?-unop)
                     #(struct:diff-exp
                       #(struct:unop-exp
                         #(struct:car-unop)
                         #(struct:var-exp lst))
                       #(struct:var-exp n)))
                   #(struct:const-exp 0)
                   #(struct:diff-exp
                     #(struct:call-exp
                       #(struct:var-exp inner2)
                       #(struct:unop-exp
                         #(struct:cdr-unop)
                         #(struct:var-exp lst)))
                     #(struct:const-exp -1))))
               #(struct:proc-exp
                 lst
                 #(struct:try-exp
                   #(struct:call-exp
                     #(struct:var-exp inner2)
                     #(struct:var-exp lst))
                   x
                   #(struct:const-exp -1))))
             ((i #(struct:num-val 1))
              (v #(struct:num-val 5))
              (x #(struct:num-val 10))))))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:end-cont))))
|(apply-cont
   #(struct:rator-cont
     #(struct:const-exp 5)
     ((index
       #(struct:proc-val
         #(struct:procedure
           n
           #(struct:letrec-exp
             inner2
             lst
             #(struct:if-exp
               #(struct:unop-exp
                 #(struct:null?-unop)
                 #(struct:var-exp lst))
               #(struct:raise-exp #(struct:const-exp 99))
               #(struct:if-exp
                 #(struct:unop-exp
                   #(struct:zero?-unop)
                   #(struct:diff-exp
                     #(struct:unop-exp
                       #(struct:car-unop)
                       #(struct:var-exp lst))
                     #(struct:var-exp n)))
                 #(struct:const-exp 0)
                 #(struct:diff-exp
                   #(struct:call-exp
                     #(struct:var-exp inner2)
                     #(struct:unop-exp
                       #(struct:cdr-unop)
                       #(struct:var-exp lst)))
                   #(struct:const-exp -1))))
             #(struct:proc-exp
               lst
               #(struct:try-exp
                 #(struct:call-exp
                   #(struct:var-exp inner2)
                   #(struct:var-exp lst))
                 x
                 #(struct:const-exp -1))))
           ((i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10))))))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:rator-cont
       #(struct:const-list-exp (2 3))
       ((index
         #(struct:proc-val
           #(struct:procedure
             n
             #(struct:letrec-exp
               inner2
               lst
               #(struct:if-exp
                 #(struct:unop-exp
                   #(struct:null?-unop)
                   #(struct:var-exp lst))
                 #(struct:raise-exp #(struct:const-exp 99))
                 #(struct:if-exp
                   #(struct:unop-exp
                     #(struct:zero?-unop)
                     #(struct:diff-exp
                       #(struct:unop-exp
                         #(struct:car-unop)
                         #(struct:var-exp lst))
                       #(struct:var-exp n)))
                   #(struct:const-exp 0)
                   #(struct:diff-exp
                     #(struct:call-exp
                       #(struct:var-exp inner2)
                       #(struct:unop-exp
                         #(struct:cdr-unop)
                         #(struct:var-exp lst)))
                     #(struct:const-exp -1))))
               #(struct:proc-exp
                 lst
                 #(struct:try-exp
                   #(struct:call-exp
                     #(struct:var-exp inner2)
                     #(struct:var-exp lst))
                   x
                   #(struct:const-exp -1))))
             ((i #(struct:num-val 1))
              (v #(struct:num-val 5))
              (x #(struct:num-val 10))))))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:end-cont)))
   #(struct:proc-val
     #(struct:procedure
       n
       #(struct:letrec-exp
         inner2
         lst
         #(struct:if-exp
           #(struct:unop-exp
             #(struct:null?-unop)
             #(struct:var-exp lst))
           #(struct:raise-exp #(struct:const-exp 99))
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:zero?-unop)
               #(struct:diff-exp
                 #(struct:unop-exp
                   #(struct:car-unop)
                   #(struct:var-exp lst))
                 #(struct:var-exp n)))
             #(struct:const-exp 0)
             #(struct:diff-exp
               #(struct:call-exp
                 #(struct:var-exp inner2)
                 #(struct:unop-exp
                   #(struct:cdr-unop)
                   #(struct:var-exp lst)))
               #(struct:const-exp -1))))
         #(struct:proc-exp
           lst
           #(struct:try-exp
             #(struct:call-exp
               #(struct:var-exp inner2)
               #(struct:var-exp lst))
             x
             #(struct:const-exp -1))))
       ((i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10))))))
|(value-of/k
   #(struct:const-exp 5)
   ((index
     #(struct:proc-val
       #(struct:procedure
         n
         #(struct:letrec-exp
           inner2
           lst
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:null?-unop)
               #(struct:var-exp lst))
             #(struct:raise-exp #(struct:const-exp 99))
             #(struct:if-exp
               #(struct:unop-exp
                 #(struct:zero?-unop)
                 #(struct:diff-exp
                   #(struct:unop-exp
                     #(struct:car-unop)
                     #(struct:var-exp lst))
                   #(struct:var-exp n)))
               #(struct:const-exp 0)
               #(struct:diff-exp
                 #(struct:call-exp
                   #(struct:var-exp inner2)
                   #(struct:unop-exp
                     #(struct:cdr-unop)
                     #(struct:var-exp lst)))
                 #(struct:const-exp -1))))
           #(struct:proc-exp
             lst
             #(struct:try-exp
               #(struct:call-exp
                 #(struct:var-exp inner2)
                 #(struct:var-exp lst))
               x
               #(struct:const-exp -1))))
         ((i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10))))))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:rand-cont
     #(struct:proc-val
       #(struct:procedure
         n
         #(struct:letrec-exp
           inner2
           lst
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:null?-unop)
               #(struct:var-exp lst))
             #(struct:raise-exp #(struct:const-exp 99))
             #(struct:if-exp
               #(struct:unop-exp
                 #(struct:zero?-unop)
                 #(struct:diff-exp
                   #(struct:unop-exp
                     #(struct:car-unop)
                     #(struct:var-exp lst))
                   #(struct:var-exp n)))
               #(struct:const-exp 0)
               #(struct:diff-exp
                 #(struct:call-exp
                   #(struct:var-exp inner2)
                   #(struct:unop-exp
                     #(struct:cdr-unop)
                     #(struct:var-exp lst)))
                 #(struct:const-exp -1))))
           #(struct:proc-exp
             lst
             #(struct:try-exp
               #(struct:call-exp
                 #(struct:var-exp inner2)
                 #(struct:var-exp lst))
               x
               #(struct:const-exp -1))))
         ((i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))))
     #(struct:rator-cont
       #(struct:const-list-exp (2 3))
       ((index
         #(struct:proc-val
           #(struct:procedure
             n
             #(struct:letrec-exp
               inner2
               lst
               #(struct:if-exp
                 #(struct:unop-exp
                   #(struct:null?-unop)
                   #(struct:var-exp lst))
                 #(struct:raise-exp #(struct:const-exp 99))
                 #(struct:if-exp
                   #(struct:unop-exp
                     #(struct:zero?-unop)
                     #(struct:diff-exp
                       #(struct:unop-exp
                         #(struct:car-unop)
                         #(struct:var-exp lst))
                       #(struct:var-exp n)))
                   #(struct:const-exp 0)
                   #(struct:diff-exp
                     #(struct:call-exp
                       #(struct:var-exp inner2)
                       #(struct:unop-exp
                         #(struct:cdr-unop)
                         #(struct:var-exp lst)))
                     #(struct:const-exp -1))))
               #(struct:proc-exp
                 lst
                 #(struct:try-exp
                   #(struct:call-exp
                     #(struct:var-exp inner2)
                     #(struct:var-exp lst))
                   x
                   #(struct:const-exp -1))))
             ((i #(struct:num-val 1))
              (v #(struct:num-val 5))
              (x #(struct:num-val 10))))))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:end-cont))))
|(apply-cont
   #(struct:rand-cont
     #(struct:proc-val
       #(struct:procedure
         n
         #(struct:letrec-exp
           inner2
           lst
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:null?-unop)
               #(struct:var-exp lst))
             #(struct:raise-exp #(struct:const-exp 99))
             #(struct:if-exp
               #(struct:unop-exp
                 #(struct:zero?-unop)
                 #(struct:diff-exp
                   #(struct:unop-exp
                     #(struct:car-unop)
                     #(struct:var-exp lst))
                   #(struct:var-exp n)))
               #(struct:const-exp 0)
               #(struct:diff-exp
                 #(struct:call-exp
                   #(struct:var-exp inner2)
                   #(struct:unop-exp
                     #(struct:cdr-unop)
                     #(struct:var-exp lst)))
                 #(struct:const-exp -1))))
           #(struct:proc-exp
             lst
             #(struct:try-exp
               #(struct:call-exp
                 #(struct:var-exp inner2)
                 #(struct:var-exp lst))
               x
               #(struct:const-exp -1))))
         ((i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))))
     #(struct:rator-cont
       #(struct:const-list-exp (2 3))
       ((index
         #(struct:proc-val
           #(struct:procedure
             n
             #(struct:letrec-exp
               inner2
               lst
               #(struct:if-exp
                 #(struct:unop-exp
                   #(struct:null?-unop)
                   #(struct:var-exp lst))
                 #(struct:raise-exp #(struct:const-exp 99))
                 #(struct:if-exp
                   #(struct:unop-exp
                     #(struct:zero?-unop)
                     #(struct:diff-exp
                       #(struct:unop-exp
                         #(struct:car-unop)
                         #(struct:var-exp lst))
                       #(struct:var-exp n)))
                   #(struct:const-exp 0)
                   #(struct:diff-exp
                     #(struct:call-exp
                       #(struct:var-exp inner2)
                       #(struct:unop-exp
                         #(struct:cdr-unop)
                         #(struct:var-exp lst)))
                     #(struct:const-exp -1))))
               #(struct:proc-exp
                 lst
                 #(struct:try-exp
                   #(struct:call-exp
                     #(struct:var-exp inner2)
                     #(struct:var-exp lst))
                   x
                   #(struct:const-exp -1))))
             ((i #(struct:num-val 1))
              (v #(struct:num-val 5))
              (x #(struct:num-val 10))))))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:end-cont)))
   #(struct:num-val 5))
|(value-of/k
   #(struct:letrec-exp
     inner2
     lst
     #(struct:if-exp
       #(struct:unop-exp
         #(struct:null?-unop)
         #(struct:var-exp lst))
       #(struct:raise-exp #(struct:const-exp 99))
       #(struct:if-exp
         #(struct:unop-exp
           #(struct:zero?-unop)
           #(struct:diff-exp
             #(struct:unop-exp
               #(struct:car-unop)
               #(struct:var-exp lst))
             #(struct:var-exp n)))
         #(struct:const-exp 0)
         #(struct:diff-exp
           #(struct:call-exp
             #(struct:var-exp inner2)
             #(struct:unop-exp
               #(struct:cdr-unop)
               #(struct:var-exp lst)))
           #(struct:const-exp -1))))
     #(struct:proc-exp
       lst
       #(struct:try-exp
         #(struct:call-exp
           #(struct:var-exp inner2)
           #(struct:var-exp lst))
         x
         #(struct:const-exp -1))))
   ((n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:rator-cont
     #(struct:const-list-exp (2 3))
     ((index
       #(struct:proc-val
         #(struct:procedure
           n
           #(struct:letrec-exp
             inner2
             lst
             #(struct:if-exp
               #(struct:unop-exp
                 #(struct:null?-unop)
                 #(struct:var-exp lst))
               #(struct:raise-exp #(struct:const-exp 99))
               #(struct:if-exp
                 #(struct:unop-exp
                   #(struct:zero?-unop)
                   #(struct:diff-exp
                     #(struct:unop-exp
                       #(struct:car-unop)
                       #(struct:var-exp lst))
                     #(struct:var-exp n)))
                 #(struct:const-exp 0)
                 #(struct:diff-exp
                   #(struct:call-exp
                     #(struct:var-exp inner2)
                     #(struct:unop-exp
                       #(struct:cdr-unop)
                       #(struct:var-exp lst)))
                   #(struct:const-exp -1))))
             #(struct:proc-exp
               lst
               #(struct:try-exp
                 #(struct:call-exp
                   #(struct:var-exp inner2)
                   #(struct:var-exp lst))
                 x
                 #(struct:const-exp -1))))
           ((i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10))))))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:end-cont)))
|(value-of/k
   #(struct:proc-exp
     lst
     #(struct:try-exp
       #(struct:call-exp
         #(struct:var-exp inner2)
         #(struct:var-exp lst))
       x
       #(struct:const-exp -1)))
   ((inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:rator-cont
     #(struct:const-list-exp (2 3))
     ((index
       #(struct:proc-val
         #(struct:procedure
           n
           #(struct:letrec-exp
             inner2
             lst
             #(struct:if-exp
               #(struct:unop-exp
                 #(struct:null?-unop)
                 #(struct:var-exp lst))
               #(struct:raise-exp #(struct:const-exp 99))
               #(struct:if-exp
                 #(struct:unop-exp
                   #(struct:zero?-unop)
                   #(struct:diff-exp
                     #(struct:unop-exp
                       #(struct:car-unop)
                       #(struct:var-exp lst))
                     #(struct:var-exp n)))
                 #(struct:const-exp 0)
                 #(struct:diff-exp
                   #(struct:call-exp
                     #(struct:var-exp inner2)
                     #(struct:unop-exp
                       #(struct:cdr-unop)
                       #(struct:var-exp lst)))
                   #(struct:const-exp -1))))
             #(struct:proc-exp
               lst
               #(struct:try-exp
                 #(struct:call-exp
                   #(struct:var-exp inner2)
                   #(struct:var-exp lst))
                 x
                 #(struct:const-exp -1))))
           ((i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10))))))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:end-cont)))
|(apply-cont
   #(struct:rator-cont
     #(struct:const-list-exp (2 3))
     ((index
       #(struct:proc-val
         #(struct:procedure
           n
           #(struct:letrec-exp
             inner2
             lst
             #(struct:if-exp
               #(struct:unop-exp
                 #(struct:null?-unop)
                 #(struct:var-exp lst))
               #(struct:raise-exp #(struct:const-exp 99))
               #(struct:if-exp
                 #(struct:unop-exp
                   #(struct:zero?-unop)
                   #(struct:diff-exp
                     #(struct:unop-exp
                       #(struct:car-unop)
                       #(struct:var-exp lst))
                     #(struct:var-exp n)))
                 #(struct:const-exp 0)
                 #(struct:diff-exp
                   #(struct:call-exp
                     #(struct:var-exp inner2)
                     #(struct:unop-exp
                       #(struct:cdr-unop)
                       #(struct:var-exp lst)))
                   #(struct:const-exp -1))))
             #(struct:proc-exp
               lst
               #(struct:try-exp
                 #(struct:call-exp
                   #(struct:var-exp inner2)
                   #(struct:var-exp lst))
                 x
                 #(struct:const-exp -1))))
           ((i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10))))))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:end-cont))
   #(struct:proc-val
     #(struct:procedure
       lst
       #(struct:try-exp
         #(struct:call-exp
           #(struct:var-exp inner2)
           #(struct:var-exp lst))
         x
         #(struct:const-exp -1))
       ((inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10))))))
|(value-of/k
   #(struct:const-list-exp (2 3))
   ((index
     #(struct:proc-val
       #(struct:procedure
         n
         #(struct:letrec-exp
           inner2
           lst
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:null?-unop)
               #(struct:var-exp lst))
             #(struct:raise-exp #(struct:const-exp 99))
             #(struct:if-exp
               #(struct:unop-exp
                 #(struct:zero?-unop)
                 #(struct:diff-exp
                   #(struct:unop-exp
                     #(struct:car-unop)
                     #(struct:var-exp lst))
                   #(struct:var-exp n)))
               #(struct:const-exp 0)
               #(struct:diff-exp
                 #(struct:call-exp
                   #(struct:var-exp inner2)
                   #(struct:unop-exp
                     #(struct:cdr-unop)
                     #(struct:var-exp lst)))
                 #(struct:const-exp -1))))
           #(struct:proc-exp
             lst
             #(struct:try-exp
               #(struct:call-exp
                 #(struct:var-exp inner2)
                 #(struct:var-exp lst))
               x
               #(struct:const-exp -1))))
         ((i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10))))))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:rand-cont
     #(struct:proc-val
       #(struct:procedure
         lst
         #(struct:try-exp
           #(struct:call-exp
             #(struct:var-exp inner2)
             #(struct:var-exp lst))
           x
           #(struct:const-exp -1))
         ((inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))))
     #(struct:end-cont)))
|(apply-cont
   #(struct:rand-cont
     #(struct:proc-val
       #(struct:procedure
         lst
         #(struct:try-exp
           #(struct:call-exp
             #(struct:var-exp inner2)
             #(struct:var-exp lst))
           x
           #(struct:const-exp -1))
         ((inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))))
     #(struct:end-cont))
   #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
|(value-of/k
   #(struct:try-exp
     #(struct:call-exp
       #(struct:var-exp inner2)
       #(struct:var-exp lst))
     x
     #(struct:const-exp -1))
   ((lst
     #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:end-cont))
|(value-of/k
   #(struct:call-exp
     #(struct:var-exp inner2)
     #(struct:var-exp lst))
   ((lst
     #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:try-cont
     x
     #(struct:const-exp -1)
     ((lst
       #(struct:list-val
         (#(struct:num-val 2) #(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:end-cont)))
|(value-of/k
   #(struct:var-exp inner2)
   ((lst
     #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:rator-cont
     #(struct:var-exp lst)
     ((lst
       #(struct:list-val
         (#(struct:num-val 2) #(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:try-cont
       x
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:end-cont))))
|(apply-cont
   #(struct:rator-cont
     #(struct:var-exp lst)
     ((lst
       #(struct:list-val
         (#(struct:num-val 2) #(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:try-cont
       x
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:end-cont)))
   #(struct:proc-val
     #(struct:procedure
       lst
       #(struct:if-exp
         #(struct:unop-exp
           #(struct:null?-unop)
           #(struct:var-exp lst))
         #(struct:raise-exp #(struct:const-exp 99))
         #(struct:if-exp
           #(struct:unop-exp
             #(struct:zero?-unop)
             #(struct:diff-exp
               #(struct:unop-exp
                 #(struct:car-unop)
                 #(struct:var-exp lst))
               #(struct:var-exp n)))
           #(struct:const-exp 0)
           #(struct:diff-exp
             #(struct:call-exp
               #(struct:var-exp inner2)
               #(struct:unop-exp
                 #(struct:cdr-unop)
                 #(struct:var-exp lst)))
             #(struct:const-exp -1))))
       ((inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10))))))
|(value-of/k
   #(struct:var-exp lst)
   ((lst
     #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:rand-cont
     #(struct:proc-val
       #(struct:procedure
         lst
         #(struct:if-exp
           #(struct:unop-exp
             #(struct:null?-unop)
             #(struct:var-exp lst))
           #(struct:raise-exp #(struct:const-exp 99))
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:zero?-unop)
               #(struct:diff-exp
                 #(struct:unop-exp
                   #(struct:car-unop)
                   #(struct:var-exp lst))
                 #(struct:var-exp n)))
             #(struct:const-exp 0)
             #(struct:diff-exp
               #(struct:call-exp
                 #(struct:var-exp inner2)
                 #(struct:unop-exp
                   #(struct:cdr-unop)
                   #(struct:var-exp lst)))
               #(struct:const-exp -1))))
         ((inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))))
     #(struct:try-cont
       x
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:end-cont))))
|(apply-cont
   #(struct:rand-cont
     #(struct:proc-val
       #(struct:procedure
         lst
         #(struct:if-exp
           #(struct:unop-exp
             #(struct:null?-unop)
             #(struct:var-exp lst))
           #(struct:raise-exp #(struct:const-exp 99))
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:zero?-unop)
               #(struct:diff-exp
                 #(struct:unop-exp
                   #(struct:car-unop)
                   #(struct:var-exp lst))
                 #(struct:var-exp n)))
             #(struct:const-exp 0)
             #(struct:diff-exp
               #(struct:call-exp
                 #(struct:var-exp inner2)
                 #(struct:unop-exp
                   #(struct:cdr-unop)
                   #(struct:var-exp lst)))
               #(struct:const-exp -1))))
         ((inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))))
     #(struct:try-cont
       x
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:end-cont)))
   #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
|(value-of/k
   #(struct:if-exp
     #(struct:unop-exp #(struct:null?-unop) #(struct:var-exp lst))
     #(struct:raise-exp #(struct:const-exp 99))
     #(struct:if-exp
       #(struct:unop-exp
         #(struct:zero?-unop)
         #(struct:diff-exp
           #(struct:unop-exp
             #(struct:car-unop)
             #(struct:var-exp lst))
           #(struct:var-exp n)))
       #(struct:const-exp 0)
       #(struct:diff-exp
         #(struct:call-exp
           #(struct:var-exp inner2)
           #(struct:unop-exp
             #(struct:cdr-unop)
             #(struct:var-exp lst)))
         #(struct:const-exp -1))))
   ((lst
     #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:try-cont
     x
     #(struct:const-exp -1)
     ((lst
       #(struct:list-val
         (#(struct:num-val 2) #(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:end-cont)))
|(value-of/k
   #(struct:unop-exp #(struct:null?-unop) #(struct:var-exp lst))
   ((lst
     #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:if-test-cont
     #(struct:raise-exp #(struct:const-exp 99))
     #(struct:if-exp
       #(struct:unop-exp
         #(struct:zero?-unop)
         #(struct:diff-exp
           #(struct:unop-exp
             #(struct:car-unop)
             #(struct:var-exp lst))
           #(struct:var-exp n)))
       #(struct:const-exp 0)
       #(struct:diff-exp
         #(struct:call-exp
           #(struct:var-exp inner2)
           #(struct:unop-exp
             #(struct:cdr-unop)
             #(struct:var-exp lst)))
         #(struct:const-exp -1)))
     ((lst
       #(struct:list-val
         (#(struct:num-val 2) #(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:try-cont
       x
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:end-cont))))
|(value-of/k
   #(struct:var-exp lst)
   ((lst
     #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:unop-arg-cont
     #(struct:null?-unop)
     #(struct:if-test-cont
       #(struct:raise-exp #(struct:const-exp 99))
       #(struct:if-exp
         #(struct:unop-exp
           #(struct:zero?-unop)
           #(struct:diff-exp
             #(struct:unop-exp
               #(struct:car-unop)
               #(struct:var-exp lst))
             #(struct:var-exp n)))
         #(struct:const-exp 0)
         #(struct:diff-exp
           #(struct:call-exp
             #(struct:var-exp inner2)
             #(struct:unop-exp
               #(struct:cdr-unop)
               #(struct:var-exp lst)))
           #(struct:const-exp -1)))
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:try-cont
         x
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:end-cont)))))
|(apply-cont
   #(struct:unop-arg-cont
     #(struct:null?-unop)
     #(struct:if-test-cont
       #(struct:raise-exp #(struct:const-exp 99))
       #(struct:if-exp
         #(struct:unop-exp
           #(struct:zero?-unop)
           #(struct:diff-exp
             #(struct:unop-exp
               #(struct:car-unop)
               #(struct:var-exp lst))
             #(struct:var-exp n)))
         #(struct:const-exp 0)
         #(struct:diff-exp
           #(struct:call-exp
             #(struct:var-exp inner2)
             #(struct:unop-exp
               #(struct:cdr-unop)
               #(struct:var-exp lst)))
           #(struct:const-exp -1)))
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:try-cont
         x
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:end-cont))))
   #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
|(apply-cont
   #(struct:if-test-cont
     #(struct:raise-exp #(struct:const-exp 99))
     #(struct:if-exp
       #(struct:unop-exp
         #(struct:zero?-unop)
         #(struct:diff-exp
           #(struct:unop-exp
             #(struct:car-unop)
             #(struct:var-exp lst))
           #(struct:var-exp n)))
       #(struct:const-exp 0)
       #(struct:diff-exp
         #(struct:call-exp
           #(struct:var-exp inner2)
           #(struct:unop-exp
             #(struct:cdr-unop)
             #(struct:var-exp lst)))
         #(struct:const-exp -1)))
     ((lst
       #(struct:list-val
         (#(struct:num-val 2) #(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:try-cont
       x
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:end-cont)))
   #(struct:bool-val #f))
|(value-of/k
   #(struct:if-exp
     #(struct:unop-exp
       #(struct:zero?-unop)
       #(struct:diff-exp
         #(struct:unop-exp
           #(struct:car-unop)
           #(struct:var-exp lst))
         #(struct:var-exp n)))
     #(struct:const-exp 0)
     #(struct:diff-exp
       #(struct:call-exp
         #(struct:var-exp inner2)
         #(struct:unop-exp
           #(struct:cdr-unop)
           #(struct:var-exp lst)))
       #(struct:const-exp -1)))
   ((lst
     #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:try-cont
     x
     #(struct:const-exp -1)
     ((lst
       #(struct:list-val
         (#(struct:num-val 2) #(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:end-cont)))
|(value-of/k
   #(struct:unop-exp
     #(struct:zero?-unop)
     #(struct:diff-exp
       #(struct:unop-exp #(struct:car-unop) #(struct:var-exp lst))
       #(struct:var-exp n)))
   ((lst
     #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:if-test-cont
     #(struct:const-exp 0)
     #(struct:diff-exp
       #(struct:call-exp
         #(struct:var-exp inner2)
         #(struct:unop-exp
           #(struct:cdr-unop)
           #(struct:var-exp lst)))
       #(struct:const-exp -1))
     ((lst
       #(struct:list-val
         (#(struct:num-val 2) #(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:try-cont
       x
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:end-cont))))
|(value-of/k
   #(struct:diff-exp
     #(struct:unop-exp #(struct:car-unop) #(struct:var-exp lst))
     #(struct:var-exp n))
   ((lst
     #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:unop-arg-cont
     #(struct:zero?-unop)
     #(struct:if-test-cont
       #(struct:const-exp 0)
       #(struct:diff-exp
         #(struct:call-exp
           #(struct:var-exp inner2)
           #(struct:unop-exp
             #(struct:cdr-unop)
             #(struct:var-exp lst)))
         #(struct:const-exp -1))
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:try-cont
         x
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:end-cont)))))
|(value-of/k
   #(struct:unop-exp #(struct:car-unop) #(struct:var-exp lst))
   ((lst
     #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:diff1-cont
     #(struct:var-exp n)
     ((lst
       #(struct:list-val
         (#(struct:num-val 2) #(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:unop-arg-cont
       #(struct:zero?-unop)
       #(struct:if-test-cont
         #(struct:const-exp 0)
         #(struct:diff-exp
           #(struct:call-exp
             #(struct:var-exp inner2)
             #(struct:unop-exp
               #(struct:cdr-unop)
               #(struct:var-exp lst)))
           #(struct:const-exp -1))
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:try-cont
           x
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:end-cont))))))
|(value-of/k
   #(struct:var-exp lst)
   ((lst
     #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:unop-arg-cont
     #(struct:car-unop)
     #(struct:diff1-cont
       #(struct:var-exp n)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:unop-arg-cont
         #(struct:zero?-unop)
         #(struct:if-test-cont
           #(struct:const-exp 0)
           #(struct:diff-exp
             #(struct:call-exp
               #(struct:var-exp inner2)
               #(struct:unop-exp
                 #(struct:cdr-unop)
                 #(struct:var-exp lst)))
             #(struct:const-exp -1))
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:try-cont
             x
             #(struct:const-exp -1)
             ((lst
               #(struct:list-val
                 (#(struct:num-val 2) #(struct:num-val 3))))
              (inner2
                lst
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:null?-unop)
                    #(struct:var-exp lst))
                  #(struct:raise-exp #(struct:const-exp 99))
                  #(struct:if-exp
                    #(struct:unop-exp
                      #(struct:zero?-unop)
                      #(struct:diff-exp
                        #(struct:unop-exp
                          #(struct:car-unop)
                          #(struct:var-exp lst))
                        #(struct:var-exp n)))
                    #(struct:const-exp 0)
                    #(struct:diff-exp
                      #(struct:call-exp
                        #(struct:var-exp inner2)
                        #(struct:unop-exp
                          #(struct:cdr-unop)
                          #(struct:var-exp lst)))
                      #(struct:const-exp -1)))))
              (n #(struct:num-val 5))
              (i #(struct:num-val 1))
              (v #(struct:num-val 5))
              (x #(struct:num-val 10)))
             #(struct:end-cont)))))))
|(apply-cont
   #(struct:unop-arg-cont
     #(struct:car-unop)
     #(struct:diff1-cont
       #(struct:var-exp n)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:unop-arg-cont
         #(struct:zero?-unop)
         #(struct:if-test-cont
           #(struct:const-exp 0)
           #(struct:diff-exp
             #(struct:call-exp
               #(struct:var-exp inner2)
               #(struct:unop-exp
                 #(struct:cdr-unop)
                 #(struct:var-exp lst)))
             #(struct:const-exp -1))
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:try-cont
             x
             #(struct:const-exp -1)
             ((lst
               #(struct:list-val
                 (#(struct:num-val 2) #(struct:num-val 3))))
              (inner2
                lst
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:null?-unop)
                    #(struct:var-exp lst))
                  #(struct:raise-exp #(struct:const-exp 99))
                  #(struct:if-exp
                    #(struct:unop-exp
                      #(struct:zero?-unop)
                      #(struct:diff-exp
                        #(struct:unop-exp
                          #(struct:car-unop)
                          #(struct:var-exp lst))
                        #(struct:var-exp n)))
                    #(struct:const-exp 0)
                    #(struct:diff-exp
                      #(struct:call-exp
                        #(struct:var-exp inner2)
                        #(struct:unop-exp
                          #(struct:cdr-unop)
                          #(struct:var-exp lst)))
                      #(struct:const-exp -1)))))
              (n #(struct:num-val 5))
              (i #(struct:num-val 1))
              (v #(struct:num-val 5))
              (x #(struct:num-val 10)))
             #(struct:end-cont))))))
   #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
|(apply-cont
   #(struct:diff1-cont
     #(struct:var-exp n)
     ((lst
       #(struct:list-val
         (#(struct:num-val 2) #(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:unop-arg-cont
       #(struct:zero?-unop)
       #(struct:if-test-cont
         #(struct:const-exp 0)
         #(struct:diff-exp
           #(struct:call-exp
             #(struct:var-exp inner2)
             #(struct:unop-exp
               #(struct:cdr-unop)
               #(struct:var-exp lst)))
           #(struct:const-exp -1))
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:try-cont
           x
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:end-cont)))))
   #(struct:num-val 2))
|(value-of/k
   #(struct:var-exp n)
   ((lst
     #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:diff2-cont
     #(struct:num-val 2)
     #(struct:unop-arg-cont
       #(struct:zero?-unop)
       #(struct:if-test-cont
         #(struct:const-exp 0)
         #(struct:diff-exp
           #(struct:call-exp
             #(struct:var-exp inner2)
             #(struct:unop-exp
               #(struct:cdr-unop)
               #(struct:var-exp lst)))
           #(struct:const-exp -1))
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:try-cont
           x
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:end-cont))))))
|(apply-cont
   #(struct:diff2-cont
     #(struct:num-val 2)
     #(struct:unop-arg-cont
       #(struct:zero?-unop)
       #(struct:if-test-cont
         #(struct:const-exp 0)
         #(struct:diff-exp
           #(struct:call-exp
             #(struct:var-exp inner2)
             #(struct:unop-exp
               #(struct:cdr-unop)
               #(struct:var-exp lst)))
           #(struct:const-exp -1))
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:try-cont
           x
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:end-cont)))))
   #(struct:num-val 5))
|(apply-cont
   #(struct:unop-arg-cont
     #(struct:zero?-unop)
     #(struct:if-test-cont
       #(struct:const-exp 0)
       #(struct:diff-exp
         #(struct:call-exp
           #(struct:var-exp inner2)
           #(struct:unop-exp
             #(struct:cdr-unop)
             #(struct:var-exp lst)))
         #(struct:const-exp -1))
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:try-cont
         x
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:end-cont))))
   #(struct:num-val -3))
|(apply-cont
   #(struct:if-test-cont
     #(struct:const-exp 0)
     #(struct:diff-exp
       #(struct:call-exp
         #(struct:var-exp inner2)
         #(struct:unop-exp
           #(struct:cdr-unop)
           #(struct:var-exp lst)))
       #(struct:const-exp -1))
     ((lst
       #(struct:list-val
         (#(struct:num-val 2) #(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:try-cont
       x
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:end-cont)))
   #(struct:bool-val #f))
|(value-of/k
   #(struct:diff-exp
     #(struct:call-exp
       #(struct:var-exp inner2)
       #(struct:unop-exp #(struct:cdr-unop) #(struct:var-exp lst)))
     #(struct:const-exp -1))
   ((lst
     #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:try-cont
     x
     #(struct:const-exp -1)
     ((lst
       #(struct:list-val
         (#(struct:num-val 2) #(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:end-cont)))
|(value-of/k
   #(struct:call-exp
     #(struct:var-exp inner2)
     #(struct:unop-exp #(struct:cdr-unop) #(struct:var-exp lst)))
   ((lst
     #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:diff1-cont
     #(struct:const-exp -1)
     ((lst
       #(struct:list-val
         (#(struct:num-val 2) #(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:try-cont
       x
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:end-cont))))
|(value-of/k
   #(struct:var-exp inner2)
   ((lst
     #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:rator-cont
     #(struct:unop-exp #(struct:cdr-unop) #(struct:var-exp lst))
     ((lst
       #(struct:list-val
         (#(struct:num-val 2) #(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:diff1-cont
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:try-cont
         x
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:end-cont)))))
|(apply-cont
   #(struct:rator-cont
     #(struct:unop-exp #(struct:cdr-unop) #(struct:var-exp lst))
     ((lst
       #(struct:list-val
         (#(struct:num-val 2) #(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:diff1-cont
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:try-cont
         x
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:end-cont))))
   #(struct:proc-val
     #(struct:procedure
       lst
       #(struct:if-exp
         #(struct:unop-exp
           #(struct:null?-unop)
           #(struct:var-exp lst))
         #(struct:raise-exp #(struct:const-exp 99))
         #(struct:if-exp
           #(struct:unop-exp
             #(struct:zero?-unop)
             #(struct:diff-exp
               #(struct:unop-exp
                 #(struct:car-unop)
                 #(struct:var-exp lst))
               #(struct:var-exp n)))
           #(struct:const-exp 0)
           #(struct:diff-exp
             #(struct:call-exp
               #(struct:var-exp inner2)
               #(struct:unop-exp
                 #(struct:cdr-unop)
                 #(struct:var-exp lst)))
             #(struct:const-exp -1))))
       ((inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10))))))
|(value-of/k
   #(struct:unop-exp #(struct:cdr-unop) #(struct:var-exp lst))
   ((lst
     #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:rand-cont
     #(struct:proc-val
       #(struct:procedure
         lst
         #(struct:if-exp
           #(struct:unop-exp
             #(struct:null?-unop)
             #(struct:var-exp lst))
           #(struct:raise-exp #(struct:const-exp 99))
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:zero?-unop)
               #(struct:diff-exp
                 #(struct:unop-exp
                   #(struct:car-unop)
                   #(struct:var-exp lst))
                 #(struct:var-exp n)))
             #(struct:const-exp 0)
             #(struct:diff-exp
               #(struct:call-exp
                 #(struct:var-exp inner2)
                 #(struct:unop-exp
                   #(struct:cdr-unop)
                   #(struct:var-exp lst)))
               #(struct:const-exp -1))))
         ((inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))))
     #(struct:diff1-cont
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:try-cont
         x
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:end-cont)))))
|(value-of/k
   #(struct:var-exp lst)
   ((lst
     #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:unop-arg-cont
     #(struct:cdr-unop)
     #(struct:rand-cont
       #(struct:proc-val
         #(struct:procedure
           lst
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:null?-unop)
               #(struct:var-exp lst))
             #(struct:raise-exp #(struct:const-exp 99))
             #(struct:if-exp
               #(struct:unop-exp
                 #(struct:zero?-unop)
                 #(struct:diff-exp
                   #(struct:unop-exp
                     #(struct:car-unop)
                     #(struct:var-exp lst))
                   #(struct:var-exp n)))
               #(struct:const-exp 0)
               #(struct:diff-exp
                 #(struct:call-exp
                   #(struct:var-exp inner2)
                   #(struct:unop-exp
                     #(struct:cdr-unop)
                     #(struct:var-exp lst)))
                 #(struct:const-exp -1))))
           ((inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))))
       #(struct:diff1-cont
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:try-cont
           x
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:end-cont))))))
|(apply-cont
   #(struct:unop-arg-cont
     #(struct:cdr-unop)
     #(struct:rand-cont
       #(struct:proc-val
         #(struct:procedure
           lst
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:null?-unop)
               #(struct:var-exp lst))
             #(struct:raise-exp #(struct:const-exp 99))
             #(struct:if-exp
               #(struct:unop-exp
                 #(struct:zero?-unop)
                 #(struct:diff-exp
                   #(struct:unop-exp
                     #(struct:car-unop)
                     #(struct:var-exp lst))
                   #(struct:var-exp n)))
               #(struct:const-exp 0)
               #(struct:diff-exp
                 #(struct:call-exp
                   #(struct:var-exp inner2)
                   #(struct:unop-exp
                     #(struct:cdr-unop)
                     #(struct:var-exp lst)))
                 #(struct:const-exp -1))))
           ((inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))))
       #(struct:diff1-cont
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:try-cont
           x
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:end-cont)))))
   #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
|(apply-cont
   #(struct:rand-cont
     #(struct:proc-val
       #(struct:procedure
         lst
         #(struct:if-exp
           #(struct:unop-exp
             #(struct:null?-unop)
             #(struct:var-exp lst))
           #(struct:raise-exp #(struct:const-exp 99))
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:zero?-unop)
               #(struct:diff-exp
                 #(struct:unop-exp
                   #(struct:car-unop)
                   #(struct:var-exp lst))
                 #(struct:var-exp n)))
             #(struct:const-exp 0)
             #(struct:diff-exp
               #(struct:call-exp
                 #(struct:var-exp inner2)
                 #(struct:unop-exp
                   #(struct:cdr-unop)
                   #(struct:var-exp lst)))
               #(struct:const-exp -1))))
         ((inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))))
     #(struct:diff1-cont
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:try-cont
         x
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:end-cont))))
   #(struct:list-val (#(struct:num-val 3))))
|(value-of/k
   #(struct:if-exp
     #(struct:unop-exp #(struct:null?-unop) #(struct:var-exp lst))
     #(struct:raise-exp #(struct:const-exp 99))
     #(struct:if-exp
       #(struct:unop-exp
         #(struct:zero?-unop)
         #(struct:diff-exp
           #(struct:unop-exp
             #(struct:car-unop)
             #(struct:var-exp lst))
           #(struct:var-exp n)))
       #(struct:const-exp 0)
       #(struct:diff-exp
         #(struct:call-exp
           #(struct:var-exp inner2)
           #(struct:unop-exp
             #(struct:cdr-unop)
             #(struct:var-exp lst)))
         #(struct:const-exp -1))))
   ((lst #(struct:list-val (#(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:diff1-cont
     #(struct:const-exp -1)
     ((lst
       #(struct:list-val
         (#(struct:num-val 2) #(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:try-cont
       x
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:end-cont))))
|(value-of/k
   #(struct:unop-exp #(struct:null?-unop) #(struct:var-exp lst))
   ((lst #(struct:list-val (#(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:if-test-cont
     #(struct:raise-exp #(struct:const-exp 99))
     #(struct:if-exp
       #(struct:unop-exp
         #(struct:zero?-unop)
         #(struct:diff-exp
           #(struct:unop-exp
             #(struct:car-unop)
             #(struct:var-exp lst))
           #(struct:var-exp n)))
       #(struct:const-exp 0)
       #(struct:diff-exp
         #(struct:call-exp
           #(struct:var-exp inner2)
           #(struct:unop-exp
             #(struct:cdr-unop)
             #(struct:var-exp lst)))
         #(struct:const-exp -1)))
     ((lst #(struct:list-val (#(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:diff1-cont
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:try-cont
         x
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:end-cont)))))
|(value-of/k
   #(struct:var-exp lst)
   ((lst #(struct:list-val (#(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:unop-arg-cont
     #(struct:null?-unop)
     #(struct:if-test-cont
       #(struct:raise-exp #(struct:const-exp 99))
       #(struct:if-exp
         #(struct:unop-exp
           #(struct:zero?-unop)
           #(struct:diff-exp
             #(struct:unop-exp
               #(struct:car-unop)
               #(struct:var-exp lst))
             #(struct:var-exp n)))
         #(struct:const-exp 0)
         #(struct:diff-exp
           #(struct:call-exp
             #(struct:var-exp inner2)
             #(struct:unop-exp
               #(struct:cdr-unop)
               #(struct:var-exp lst)))
           #(struct:const-exp -1)))
       ((lst #(struct:list-val (#(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:diff1-cont
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:try-cont
           x
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:end-cont))))))
|(apply-cont
   #(struct:unop-arg-cont
     #(struct:null?-unop)
     #(struct:if-test-cont
       #(struct:raise-exp #(struct:const-exp 99))
       #(struct:if-exp
         #(struct:unop-exp
           #(struct:zero?-unop)
           #(struct:diff-exp
             #(struct:unop-exp
               #(struct:car-unop)
               #(struct:var-exp lst))
             #(struct:var-exp n)))
         #(struct:const-exp 0)
         #(struct:diff-exp
           #(struct:call-exp
             #(struct:var-exp inner2)
             #(struct:unop-exp
               #(struct:cdr-unop)
               #(struct:var-exp lst)))
           #(struct:const-exp -1)))
       ((lst #(struct:list-val (#(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:diff1-cont
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:try-cont
           x
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:end-cont)))))
   #(struct:list-val (#(struct:num-val 3))))
|(apply-cont
   #(struct:if-test-cont
     #(struct:raise-exp #(struct:const-exp 99))
     #(struct:if-exp
       #(struct:unop-exp
         #(struct:zero?-unop)
         #(struct:diff-exp
           #(struct:unop-exp
             #(struct:car-unop)
             #(struct:var-exp lst))
           #(struct:var-exp n)))
       #(struct:const-exp 0)
       #(struct:diff-exp
         #(struct:call-exp
           #(struct:var-exp inner2)
           #(struct:unop-exp
             #(struct:cdr-unop)
             #(struct:var-exp lst)))
         #(struct:const-exp -1)))
     ((lst #(struct:list-val (#(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:diff1-cont
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:try-cont
         x
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:end-cont))))
   #(struct:bool-val #f))
|(value-of/k
   #(struct:if-exp
     #(struct:unop-exp
       #(struct:zero?-unop)
       #(struct:diff-exp
         #(struct:unop-exp
           #(struct:car-unop)
           #(struct:var-exp lst))
         #(struct:var-exp n)))
     #(struct:const-exp 0)
     #(struct:diff-exp
       #(struct:call-exp
         #(struct:var-exp inner2)
         #(struct:unop-exp
           #(struct:cdr-unop)
           #(struct:var-exp lst)))
       #(struct:const-exp -1)))
   ((lst #(struct:list-val (#(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:diff1-cont
     #(struct:const-exp -1)
     ((lst
       #(struct:list-val
         (#(struct:num-val 2) #(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:try-cont
       x
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:end-cont))))
|(value-of/k
   #(struct:unop-exp
     #(struct:zero?-unop)
     #(struct:diff-exp
       #(struct:unop-exp #(struct:car-unop) #(struct:var-exp lst))
       #(struct:var-exp n)))
   ((lst #(struct:list-val (#(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:if-test-cont
     #(struct:const-exp 0)
     #(struct:diff-exp
       #(struct:call-exp
         #(struct:var-exp inner2)
         #(struct:unop-exp
           #(struct:cdr-unop)
           #(struct:var-exp lst)))
       #(struct:const-exp -1))
     ((lst #(struct:list-val (#(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:diff1-cont
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:try-cont
         x
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:end-cont)))))
|(value-of/k
   #(struct:diff-exp
     #(struct:unop-exp #(struct:car-unop) #(struct:var-exp lst))
     #(struct:var-exp n))
   ((lst #(struct:list-val (#(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:unop-arg-cont
     #(struct:zero?-unop)
     #(struct:if-test-cont
       #(struct:const-exp 0)
       #(struct:diff-exp
         #(struct:call-exp
           #(struct:var-exp inner2)
           #(struct:unop-exp
             #(struct:cdr-unop)
             #(struct:var-exp lst)))
         #(struct:const-exp -1))
       ((lst #(struct:list-val (#(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:diff1-cont
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:try-cont
           x
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:end-cont))))))
|(value-of/k
   #(struct:unop-exp #(struct:car-unop) #(struct:var-exp lst))
   ((lst #(struct:list-val (#(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:diff1-cont
     #(struct:var-exp n)
     ((lst #(struct:list-val (#(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:unop-arg-cont
       #(struct:zero?-unop)
       #(struct:if-test-cont
         #(struct:const-exp 0)
         #(struct:diff-exp
           #(struct:call-exp
             #(struct:var-exp inner2)
             #(struct:unop-exp
               #(struct:cdr-unop)
               #(struct:var-exp lst)))
           #(struct:const-exp -1))
         ((lst #(struct:list-val (#(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:diff1-cont
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:try-cont
             x
             #(struct:const-exp -1)
             ((lst
               #(struct:list-val
                 (#(struct:num-val 2) #(struct:num-val 3))))
              (inner2
                lst
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:null?-unop)
                    #(struct:var-exp lst))
                  #(struct:raise-exp #(struct:const-exp 99))
                  #(struct:if-exp
                    #(struct:unop-exp
                      #(struct:zero?-unop)
                      #(struct:diff-exp
                        #(struct:unop-exp
                          #(struct:car-unop)
                          #(struct:var-exp lst))
                        #(struct:var-exp n)))
                    #(struct:const-exp 0)
                    #(struct:diff-exp
                      #(struct:call-exp
                        #(struct:var-exp inner2)
                        #(struct:unop-exp
                          #(struct:cdr-unop)
                          #(struct:var-exp lst)))
                      #(struct:const-exp -1)))))
              (n #(struct:num-val 5))
              (i #(struct:num-val 1))
              (v #(struct:num-val 5))
              (x #(struct:num-val 10)))
             #(struct:end-cont)))))))
|(value-of/k
   #(struct:var-exp lst)
   ((lst #(struct:list-val (#(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:unop-arg-cont
     #(struct:car-unop)
     #(struct:diff1-cont
       #(struct:var-exp n)
       ((lst #(struct:list-val (#(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:unop-arg-cont
         #(struct:zero?-unop)
         #(struct:if-test-cont
           #(struct:const-exp 0)
           #(struct:diff-exp
             #(struct:call-exp
               #(struct:var-exp inner2)
               #(struct:unop-exp
                 #(struct:cdr-unop)
                 #(struct:var-exp lst)))
             #(struct:const-exp -1))
           ((lst #(struct:list-val (#(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:diff1-cont
             #(struct:const-exp -1)
             ((lst
               #(struct:list-val
                 (#(struct:num-val 2) #(struct:num-val 3))))
              (inner2
                lst
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:null?-unop)
                    #(struct:var-exp lst))
                  #(struct:raise-exp #(struct:const-exp 99))
                  #(struct:if-exp
                    #(struct:unop-exp
                      #(struct:zero?-unop)
                      #(struct:diff-exp
                        #(struct:unop-exp
                          #(struct:car-unop)
                          #(struct:var-exp lst))
                        #(struct:var-exp n)))
                    #(struct:const-exp 0)
                    #(struct:diff-exp
                      #(struct:call-exp
                        #(struct:var-exp inner2)
                        #(struct:unop-exp
                          #(struct:cdr-unop)
                          #(struct:var-exp lst)))
                      #(struct:const-exp -1)))))
              (n #(struct:num-val 5))
              (i #(struct:num-val 1))
              (v #(struct:num-val 5))
              (x #(struct:num-val 10)))
             #(struct:try-cont
               x
               #(struct:const-exp -1)
               ((lst
                 #(struct:list-val
                   (#(struct:num-val 2) #(struct:num-val 3))))
                (inner2
                  lst
                  #(struct:if-exp
                    #(struct:unop-exp
                      #(struct:null?-unop)
                      #(struct:var-exp lst))
                    #(struct:raise-exp #(struct:const-exp 99))
                    #(struct:if-exp
                      #(struct:unop-exp
                        #(struct:zero?-unop)
                        #(struct:diff-exp
                          #(struct:unop-exp
                            #(struct:car-unop)
                            #(struct:var-exp lst))
                          #(struct:var-exp n)))
                      #(struct:const-exp 0)
                      #(struct:diff-exp
                        #(struct:call-exp
                          #(struct:var-exp inner2)
                          #(struct:unop-exp
                            #(struct:cdr-unop)
                            #(struct:var-exp lst)))
                        #(struct:const-exp -1)))))
                (n #(struct:num-val 5))
                (i #(struct:num-val 1))
                (v #(struct:num-val 5))
                (x #(struct:num-val 10)))
               #(struct:end-cont))))))))
|(apply-cont
   #(struct:unop-arg-cont
     #(struct:car-unop)
     #(struct:diff1-cont
       #(struct:var-exp n)
       ((lst #(struct:list-val (#(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:unop-arg-cont
         #(struct:zero?-unop)
         #(struct:if-test-cont
           #(struct:const-exp 0)
           #(struct:diff-exp
             #(struct:call-exp
               #(struct:var-exp inner2)
               #(struct:unop-exp
                 #(struct:cdr-unop)
                 #(struct:var-exp lst)))
             #(struct:const-exp -1))
           ((lst #(struct:list-val (#(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:diff1-cont
             #(struct:const-exp -1)
             ((lst
               #(struct:list-val
                 (#(struct:num-val 2) #(struct:num-val 3))))
              (inner2
                lst
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:null?-unop)
                    #(struct:var-exp lst))
                  #(struct:raise-exp #(struct:const-exp 99))
                  #(struct:if-exp
                    #(struct:unop-exp
                      #(struct:zero?-unop)
                      #(struct:diff-exp
                        #(struct:unop-exp
                          #(struct:car-unop)
                          #(struct:var-exp lst))
                        #(struct:var-exp n)))
                    #(struct:const-exp 0)
                    #(struct:diff-exp
                      #(struct:call-exp
                        #(struct:var-exp inner2)
                        #(struct:unop-exp
                          #(struct:cdr-unop)
                          #(struct:var-exp lst)))
                      #(struct:const-exp -1)))))
              (n #(struct:num-val 5))
              (i #(struct:num-val 1))
              (v #(struct:num-val 5))
              (x #(struct:num-val 10)))
             #(struct:try-cont
               x
               #(struct:const-exp -1)
               ((lst
                 #(struct:list-val
                   (#(struct:num-val 2) #(struct:num-val 3))))
                (inner2
                  lst
                  #(struct:if-exp
                    #(struct:unop-exp
                      #(struct:null?-unop)
                      #(struct:var-exp lst))
                    #(struct:raise-exp #(struct:const-exp 99))
                    #(struct:if-exp
                      #(struct:unop-exp
                        #(struct:zero?-unop)
                        #(struct:diff-exp
                          #(struct:unop-exp
                            #(struct:car-unop)
                            #(struct:var-exp lst))
                          #(struct:var-exp n)))
                      #(struct:const-exp 0)
                      #(struct:diff-exp
                        #(struct:call-exp
                          #(struct:var-exp inner2)
                          #(struct:unop-exp
                            #(struct:cdr-unop)
                            #(struct:var-exp lst)))
                        #(struct:const-exp -1)))))
                (n #(struct:num-val 5))
                (i #(struct:num-val 1))
                (v #(struct:num-val 5))
                (x #(struct:num-val 10)))
               #(struct:end-cont)))))))
   #(struct:list-val (#(struct:num-val 3))))
|(apply-cont
   #(struct:diff1-cont
     #(struct:var-exp n)
     ((lst #(struct:list-val (#(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:unop-arg-cont
       #(struct:zero?-unop)
       #(struct:if-test-cont
         #(struct:const-exp 0)
         #(struct:diff-exp
           #(struct:call-exp
             #(struct:var-exp inner2)
             #(struct:unop-exp
               #(struct:cdr-unop)
               #(struct:var-exp lst)))
           #(struct:const-exp -1))
         ((lst #(struct:list-val (#(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:diff1-cont
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:try-cont
             x
             #(struct:const-exp -1)
             ((lst
               #(struct:list-val
                 (#(struct:num-val 2) #(struct:num-val 3))))
              (inner2
                lst
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:null?-unop)
                    #(struct:var-exp lst))
                  #(struct:raise-exp #(struct:const-exp 99))
                  #(struct:if-exp
                    #(struct:unop-exp
                      #(struct:zero?-unop)
                      #(struct:diff-exp
                        #(struct:unop-exp
                          #(struct:car-unop)
                          #(struct:var-exp lst))
                        #(struct:var-exp n)))
                    #(struct:const-exp 0)
                    #(struct:diff-exp
                      #(struct:call-exp
                        #(struct:var-exp inner2)
                        #(struct:unop-exp
                          #(struct:cdr-unop)
                          #(struct:var-exp lst)))
                      #(struct:const-exp -1)))))
              (n #(struct:num-val 5))
              (i #(struct:num-val 1))
              (v #(struct:num-val 5))
              (x #(struct:num-val 10)))
             #(struct:end-cont))))))
   #(struct:num-val 3))
|(value-of/k
   #(struct:var-exp n)
   ((lst #(struct:list-val (#(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:diff2-cont
     #(struct:num-val 3)
     #(struct:unop-arg-cont
       #(struct:zero?-unop)
       #(struct:if-test-cont
         #(struct:const-exp 0)
         #(struct:diff-exp
           #(struct:call-exp
             #(struct:var-exp inner2)
             #(struct:unop-exp
               #(struct:cdr-unop)
               #(struct:var-exp lst)))
           #(struct:const-exp -1))
         ((lst #(struct:list-val (#(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:diff1-cont
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:try-cont
             x
             #(struct:const-exp -1)
             ((lst
               #(struct:list-val
                 (#(struct:num-val 2) #(struct:num-val 3))))
              (inner2
                lst
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:null?-unop)
                    #(struct:var-exp lst))
                  #(struct:raise-exp #(struct:const-exp 99))
                  #(struct:if-exp
                    #(struct:unop-exp
                      #(struct:zero?-unop)
                      #(struct:diff-exp
                        #(struct:unop-exp
                          #(struct:car-unop)
                          #(struct:var-exp lst))
                        #(struct:var-exp n)))
                    #(struct:const-exp 0)
                    #(struct:diff-exp
                      #(struct:call-exp
                        #(struct:var-exp inner2)
                        #(struct:unop-exp
                          #(struct:cdr-unop)
                          #(struct:var-exp lst)))
                      #(struct:const-exp -1)))))
              (n #(struct:num-val 5))
              (i #(struct:num-val 1))
              (v #(struct:num-val 5))
              (x #(struct:num-val 10)))
             #(struct:end-cont)))))))
|(apply-cont
   #(struct:diff2-cont
     #(struct:num-val 3)
     #(struct:unop-arg-cont
       #(struct:zero?-unop)
       #(struct:if-test-cont
         #(struct:const-exp 0)
         #(struct:diff-exp
           #(struct:call-exp
             #(struct:var-exp inner2)
             #(struct:unop-exp
               #(struct:cdr-unop)
               #(struct:var-exp lst)))
           #(struct:const-exp -1))
         ((lst #(struct:list-val (#(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:diff1-cont
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:try-cont
             x
             #(struct:const-exp -1)
             ((lst
               #(struct:list-val
                 (#(struct:num-val 2) #(struct:num-val 3))))
              (inner2
                lst
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:null?-unop)
                    #(struct:var-exp lst))
                  #(struct:raise-exp #(struct:const-exp 99))
                  #(struct:if-exp
                    #(struct:unop-exp
                      #(struct:zero?-unop)
                      #(struct:diff-exp
                        #(struct:unop-exp
                          #(struct:car-unop)
                          #(struct:var-exp lst))
                        #(struct:var-exp n)))
                    #(struct:const-exp 0)
                    #(struct:diff-exp
                      #(struct:call-exp
                        #(struct:var-exp inner2)
                        #(struct:unop-exp
                          #(struct:cdr-unop)
                          #(struct:var-exp lst)))
                      #(struct:const-exp -1)))))
              (n #(struct:num-val 5))
              (i #(struct:num-val 1))
              (v #(struct:num-val 5))
              (x #(struct:num-val 10)))
             #(struct:end-cont))))))
   #(struct:num-val 5))
|(apply-cont
   #(struct:unop-arg-cont
     #(struct:zero?-unop)
     #(struct:if-test-cont
       #(struct:const-exp 0)
       #(struct:diff-exp
         #(struct:call-exp
           #(struct:var-exp inner2)
           #(struct:unop-exp
             #(struct:cdr-unop)
             #(struct:var-exp lst)))
         #(struct:const-exp -1))
       ((lst #(struct:list-val (#(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:diff1-cont
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:try-cont
           x
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:end-cont)))))
   #(struct:num-val -2))
|(apply-cont
   #(struct:if-test-cont
     #(struct:const-exp 0)
     #(struct:diff-exp
       #(struct:call-exp
         #(struct:var-exp inner2)
         #(struct:unop-exp
           #(struct:cdr-unop)
           #(struct:var-exp lst)))
       #(struct:const-exp -1))
     ((lst #(struct:list-val (#(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:diff1-cont
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:try-cont
         x
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:end-cont))))
   #(struct:bool-val #f))
|(value-of/k
   #(struct:diff-exp
     #(struct:call-exp
       #(struct:var-exp inner2)
       #(struct:unop-exp #(struct:cdr-unop) #(struct:var-exp lst)))
     #(struct:const-exp -1))
   ((lst #(struct:list-val (#(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:diff1-cont
     #(struct:const-exp -1)
     ((lst
       #(struct:list-val
         (#(struct:num-val 2) #(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:try-cont
       x
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:end-cont))))
|(value-of/k
   #(struct:call-exp
     #(struct:var-exp inner2)
     #(struct:unop-exp #(struct:cdr-unop) #(struct:var-exp lst)))
   ((lst #(struct:list-val (#(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:diff1-cont
     #(struct:const-exp -1)
     ((lst #(struct:list-val (#(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:diff1-cont
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:try-cont
         x
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:end-cont)))))
|(value-of/k
   #(struct:var-exp inner2)
   ((lst #(struct:list-val (#(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:rator-cont
     #(struct:unop-exp #(struct:cdr-unop) #(struct:var-exp lst))
     ((lst #(struct:list-val (#(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:diff1-cont
       #(struct:const-exp -1)
       ((lst #(struct:list-val (#(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:diff1-cont
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:try-cont
           x
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:end-cont))))))
|(apply-cont
   #(struct:rator-cont
     #(struct:unop-exp #(struct:cdr-unop) #(struct:var-exp lst))
     ((lst #(struct:list-val (#(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:diff1-cont
       #(struct:const-exp -1)
       ((lst #(struct:list-val (#(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:diff1-cont
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:try-cont
           x
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:end-cont)))))
   #(struct:proc-val
     #(struct:procedure
       lst
       #(struct:if-exp
         #(struct:unop-exp
           #(struct:null?-unop)
           #(struct:var-exp lst))
         #(struct:raise-exp #(struct:const-exp 99))
         #(struct:if-exp
           #(struct:unop-exp
             #(struct:zero?-unop)
             #(struct:diff-exp
               #(struct:unop-exp
                 #(struct:car-unop)
                 #(struct:var-exp lst))
               #(struct:var-exp n)))
           #(struct:const-exp 0)
           #(struct:diff-exp
             #(struct:call-exp
               #(struct:var-exp inner2)
               #(struct:unop-exp
                 #(struct:cdr-unop)
                 #(struct:var-exp lst)))
             #(struct:const-exp -1))))
       ((inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10))))))
|(value-of/k
   #(struct:unop-exp #(struct:cdr-unop) #(struct:var-exp lst))
   ((lst #(struct:list-val (#(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:rand-cont
     #(struct:proc-val
       #(struct:procedure
         lst
         #(struct:if-exp
           #(struct:unop-exp
             #(struct:null?-unop)
             #(struct:var-exp lst))
           #(struct:raise-exp #(struct:const-exp 99))
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:zero?-unop)
               #(struct:diff-exp
                 #(struct:unop-exp
                   #(struct:car-unop)
                   #(struct:var-exp lst))
                 #(struct:var-exp n)))
             #(struct:const-exp 0)
             #(struct:diff-exp
               #(struct:call-exp
                 #(struct:var-exp inner2)
                 #(struct:unop-exp
                   #(struct:cdr-unop)
                   #(struct:var-exp lst)))
               #(struct:const-exp -1))))
         ((inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))))
     #(struct:diff1-cont
       #(struct:const-exp -1)
       ((lst #(struct:list-val (#(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:diff1-cont
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:try-cont
           x
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:end-cont))))))
|(value-of/k
   #(struct:var-exp lst)
   ((lst #(struct:list-val (#(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:unop-arg-cont
     #(struct:cdr-unop)
     #(struct:rand-cont
       #(struct:proc-val
         #(struct:procedure
           lst
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:null?-unop)
               #(struct:var-exp lst))
             #(struct:raise-exp #(struct:const-exp 99))
             #(struct:if-exp
               #(struct:unop-exp
                 #(struct:zero?-unop)
                 #(struct:diff-exp
                   #(struct:unop-exp
                     #(struct:car-unop)
                     #(struct:var-exp lst))
                   #(struct:var-exp n)))
               #(struct:const-exp 0)
               #(struct:diff-exp
                 #(struct:call-exp
                   #(struct:var-exp inner2)
                   #(struct:unop-exp
                     #(struct:cdr-unop)
                     #(struct:var-exp lst)))
                 #(struct:const-exp -1))))
           ((inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))))
       #(struct:diff1-cont
         #(struct:const-exp -1)
         ((lst #(struct:list-val (#(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:diff1-cont
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:try-cont
             x
             #(struct:const-exp -1)
             ((lst
               #(struct:list-val
                 (#(struct:num-val 2) #(struct:num-val 3))))
              (inner2
                lst
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:null?-unop)
                    #(struct:var-exp lst))
                  #(struct:raise-exp #(struct:const-exp 99))
                  #(struct:if-exp
                    #(struct:unop-exp
                      #(struct:zero?-unop)
                      #(struct:diff-exp
                        #(struct:unop-exp
                          #(struct:car-unop)
                          #(struct:var-exp lst))
                        #(struct:var-exp n)))
                    #(struct:const-exp 0)
                    #(struct:diff-exp
                      #(struct:call-exp
                        #(struct:var-exp inner2)
                        #(struct:unop-exp
                          #(struct:cdr-unop)
                          #(struct:var-exp lst)))
                      #(struct:const-exp -1)))))
              (n #(struct:num-val 5))
              (i #(struct:num-val 1))
              (v #(struct:num-val 5))
              (x #(struct:num-val 10)))
             #(struct:end-cont)))))))
|(apply-cont
   #(struct:unop-arg-cont
     #(struct:cdr-unop)
     #(struct:rand-cont
       #(struct:proc-val
         #(struct:procedure
           lst
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:null?-unop)
               #(struct:var-exp lst))
             #(struct:raise-exp #(struct:const-exp 99))
             #(struct:if-exp
               #(struct:unop-exp
                 #(struct:zero?-unop)
                 #(struct:diff-exp
                   #(struct:unop-exp
                     #(struct:car-unop)
                     #(struct:var-exp lst))
                   #(struct:var-exp n)))
               #(struct:const-exp 0)
               #(struct:diff-exp
                 #(struct:call-exp
                   #(struct:var-exp inner2)
                   #(struct:unop-exp
                     #(struct:cdr-unop)
                     #(struct:var-exp lst)))
                 #(struct:const-exp -1))))
           ((inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))))
       #(struct:diff1-cont
         #(struct:const-exp -1)
         ((lst #(struct:list-val (#(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:diff1-cont
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:try-cont
             x
             #(struct:const-exp -1)
             ((lst
               #(struct:list-val
                 (#(struct:num-val 2) #(struct:num-val 3))))
              (inner2
                lst
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:null?-unop)
                    #(struct:var-exp lst))
                  #(struct:raise-exp #(struct:const-exp 99))
                  #(struct:if-exp
                    #(struct:unop-exp
                      #(struct:zero?-unop)
                      #(struct:diff-exp
                        #(struct:unop-exp
                          #(struct:car-unop)
                          #(struct:var-exp lst))
                        #(struct:var-exp n)))
                    #(struct:const-exp 0)
                    #(struct:diff-exp
                      #(struct:call-exp
                        #(struct:var-exp inner2)
                        #(struct:unop-exp
                          #(struct:cdr-unop)
                          #(struct:var-exp lst)))
                      #(struct:const-exp -1)))))
              (n #(struct:num-val 5))
              (i #(struct:num-val 1))
              (v #(struct:num-val 5))
              (x #(struct:num-val 10)))
             #(struct:end-cont))))))
   #(struct:list-val (#(struct:num-val 3))))
|(apply-cont
   #(struct:rand-cont
     #(struct:proc-val
       #(struct:procedure
         lst
         #(struct:if-exp
           #(struct:unop-exp
             #(struct:null?-unop)
             #(struct:var-exp lst))
           #(struct:raise-exp #(struct:const-exp 99))
           #(struct:if-exp
             #(struct:unop-exp
               #(struct:zero?-unop)
               #(struct:diff-exp
                 #(struct:unop-exp
                   #(struct:car-unop)
                   #(struct:var-exp lst))
                 #(struct:var-exp n)))
             #(struct:const-exp 0)
             #(struct:diff-exp
               #(struct:call-exp
                 #(struct:var-exp inner2)
                 #(struct:unop-exp
                   #(struct:cdr-unop)
                   #(struct:var-exp lst)))
               #(struct:const-exp -1))))
         ((inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))))
     #(struct:diff1-cont
       #(struct:const-exp -1)
       ((lst #(struct:list-val (#(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:diff1-cont
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:try-cont
           x
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:end-cont)))))
   #(struct:list-val ()))
|(value-of/k
   #(struct:if-exp
     #(struct:unop-exp #(struct:null?-unop) #(struct:var-exp lst))
     #(struct:raise-exp #(struct:const-exp 99))
     #(struct:if-exp
       #(struct:unop-exp
         #(struct:zero?-unop)
         #(struct:diff-exp
           #(struct:unop-exp
             #(struct:car-unop)
             #(struct:var-exp lst))
           #(struct:var-exp n)))
       #(struct:const-exp 0)
       #(struct:diff-exp
         #(struct:call-exp
           #(struct:var-exp inner2)
           #(struct:unop-exp
             #(struct:cdr-unop)
             #(struct:var-exp lst)))
         #(struct:const-exp -1))))
   ((lst #(struct:list-val ()))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:diff1-cont
     #(struct:const-exp -1)
     ((lst #(struct:list-val (#(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:diff1-cont
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:try-cont
         x
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:end-cont)))))
|(value-of/k
   #(struct:unop-exp #(struct:null?-unop) #(struct:var-exp lst))
   ((lst #(struct:list-val ()))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:if-test-cont
     #(struct:raise-exp #(struct:const-exp 99))
     #(struct:if-exp
       #(struct:unop-exp
         #(struct:zero?-unop)
         #(struct:diff-exp
           #(struct:unop-exp
             #(struct:car-unop)
             #(struct:var-exp lst))
           #(struct:var-exp n)))
       #(struct:const-exp 0)
       #(struct:diff-exp
         #(struct:call-exp
           #(struct:var-exp inner2)
           #(struct:unop-exp
             #(struct:cdr-unop)
             #(struct:var-exp lst)))
         #(struct:const-exp -1)))
     ((lst #(struct:list-val ()))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:diff1-cont
       #(struct:const-exp -1)
       ((lst #(struct:list-val (#(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:diff1-cont
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:try-cont
           x
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:end-cont))))))
|(value-of/k
   #(struct:var-exp lst)
   ((lst #(struct:list-val ()))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:unop-arg-cont
     #(struct:null?-unop)
     #(struct:if-test-cont
       #(struct:raise-exp #(struct:const-exp 99))
       #(struct:if-exp
         #(struct:unop-exp
           #(struct:zero?-unop)
           #(struct:diff-exp
             #(struct:unop-exp
               #(struct:car-unop)
               #(struct:var-exp lst))
             #(struct:var-exp n)))
         #(struct:const-exp 0)
         #(struct:diff-exp
           #(struct:call-exp
             #(struct:var-exp inner2)
             #(struct:unop-exp
               #(struct:cdr-unop)
               #(struct:var-exp lst)))
           #(struct:const-exp -1)))
       ((lst #(struct:list-val ()))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:diff1-cont
         #(struct:const-exp -1)
         ((lst #(struct:list-val (#(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:diff1-cont
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:try-cont
             x
             #(struct:const-exp -1)
             ((lst
               #(struct:list-val
                 (#(struct:num-val 2) #(struct:num-val 3))))
              (inner2
                lst
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:null?-unop)
                    #(struct:var-exp lst))
                  #(struct:raise-exp #(struct:const-exp 99))
                  #(struct:if-exp
                    #(struct:unop-exp
                      #(struct:zero?-unop)
                      #(struct:diff-exp
                        #(struct:unop-exp
                          #(struct:car-unop)
                          #(struct:var-exp lst))
                        #(struct:var-exp n)))
                    #(struct:const-exp 0)
                    #(struct:diff-exp
                      #(struct:call-exp
                        #(struct:var-exp inner2)
                        #(struct:unop-exp
                          #(struct:cdr-unop)
                          #(struct:var-exp lst)))
                      #(struct:const-exp -1)))))
              (n #(struct:num-val 5))
              (i #(struct:num-val 1))
              (v #(struct:num-val 5))
              (x #(struct:num-val 10)))
             #(struct:end-cont)))))))
|(apply-cont
   #(struct:unop-arg-cont
     #(struct:null?-unop)
     #(struct:if-test-cont
       #(struct:raise-exp #(struct:const-exp 99))
       #(struct:if-exp
         #(struct:unop-exp
           #(struct:zero?-unop)
           #(struct:diff-exp
             #(struct:unop-exp
               #(struct:car-unop)
               #(struct:var-exp lst))
             #(struct:var-exp n)))
         #(struct:const-exp 0)
         #(struct:diff-exp
           #(struct:call-exp
             #(struct:var-exp inner2)
             #(struct:unop-exp
               #(struct:cdr-unop)
               #(struct:var-exp lst)))
           #(struct:const-exp -1)))
       ((lst #(struct:list-val ()))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:diff1-cont
         #(struct:const-exp -1)
         ((lst #(struct:list-val (#(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:diff1-cont
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:try-cont
             x
             #(struct:const-exp -1)
             ((lst
               #(struct:list-val
                 (#(struct:num-val 2) #(struct:num-val 3))))
              (inner2
                lst
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:null?-unop)
                    #(struct:var-exp lst))
                  #(struct:raise-exp #(struct:const-exp 99))
                  #(struct:if-exp
                    #(struct:unop-exp
                      #(struct:zero?-unop)
                      #(struct:diff-exp
                        #(struct:unop-exp
                          #(struct:car-unop)
                          #(struct:var-exp lst))
                        #(struct:var-exp n)))
                    #(struct:const-exp 0)
                    #(struct:diff-exp
                      #(struct:call-exp
                        #(struct:var-exp inner2)
                        #(struct:unop-exp
                          #(struct:cdr-unop)
                          #(struct:var-exp lst)))
                      #(struct:const-exp -1)))))
              (n #(struct:num-val 5))
              (i #(struct:num-val 1))
              (v #(struct:num-val 5))
              (x #(struct:num-val 10)))
             #(struct:end-cont))))))
   #(struct:list-val ()))
|(apply-cont
   #(struct:if-test-cont
     #(struct:raise-exp #(struct:const-exp 99))
     #(struct:if-exp
       #(struct:unop-exp
         #(struct:zero?-unop)
         #(struct:diff-exp
           #(struct:unop-exp
             #(struct:car-unop)
             #(struct:var-exp lst))
           #(struct:var-exp n)))
       #(struct:const-exp 0)
       #(struct:diff-exp
         #(struct:call-exp
           #(struct:var-exp inner2)
           #(struct:unop-exp
             #(struct:cdr-unop)
             #(struct:var-exp lst)))
         #(struct:const-exp -1)))
     ((lst #(struct:list-val ()))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:diff1-cont
       #(struct:const-exp -1)
       ((lst #(struct:list-val (#(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:diff1-cont
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:try-cont
           x
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:end-cont)))))
   #(struct:bool-val #t))
|(value-of/k
   #(struct:raise-exp #(struct:const-exp 99))
   ((lst #(struct:list-val ()))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:diff1-cont
     #(struct:const-exp -1)
     ((lst #(struct:list-val (#(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:diff1-cont
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:try-cont
         x
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:end-cont)))))
|(value-of/k
   #(struct:const-exp 99)
   ((lst #(struct:list-val ()))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:raise1-cont
     #(struct:diff1-cont
       #(struct:const-exp -1)
       ((lst #(struct:list-val (#(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:diff1-cont
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:try-cont
           x
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:end-cont))))))
|(apply-cont
   #(struct:raise1-cont
     #(struct:diff1-cont
       #(struct:const-exp -1)
       ((lst #(struct:list-val (#(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:diff1-cont
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:try-cont
           x
           #(struct:const-exp -1)
           ((lst
             #(struct:list-val
               (#(struct:num-val 2) #(struct:num-val 3))))
            (inner2
              lst
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:null?-unop)
                  #(struct:var-exp lst))
                #(struct:raise-exp #(struct:const-exp 99))
                #(struct:if-exp
                  #(struct:unop-exp
                    #(struct:zero?-unop)
                    #(struct:diff-exp
                      #(struct:unop-exp
                        #(struct:car-unop)
                        #(struct:var-exp lst))
                      #(struct:var-exp n)))
                  #(struct:const-exp 0)
                  #(struct:diff-exp
                    #(struct:call-exp
                      #(struct:var-exp inner2)
                      #(struct:unop-exp
                        #(struct:cdr-unop)
                        #(struct:var-exp lst)))
                    #(struct:const-exp -1)))))
            (n #(struct:num-val 5))
            (i #(struct:num-val 1))
            (v #(struct:num-val 5))
            (x #(struct:num-val 10)))
           #(struct:end-cont)))))
   #(struct:num-val 99))
|(apply-handler
   #(struct:num-val 99)
   #(struct:diff1-cont
     #(struct:const-exp -1)
     ((lst #(struct:list-val (#(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:diff1-cont
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:try-cont
         x
         #(struct:const-exp -1)
         ((lst
           #(struct:list-val
             (#(struct:num-val 2) #(struct:num-val 3))))
          (inner2
            lst
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:null?-unop)
                #(struct:var-exp lst))
              #(struct:raise-exp #(struct:const-exp 99))
              #(struct:if-exp
                #(struct:unop-exp
                  #(struct:zero?-unop)
                  #(struct:diff-exp
                    #(struct:unop-exp
                      #(struct:car-unop)
                      #(struct:var-exp lst))
                    #(struct:var-exp n)))
                #(struct:const-exp 0)
                #(struct:diff-exp
                  #(struct:call-exp
                    #(struct:var-exp inner2)
                    #(struct:unop-exp
                      #(struct:cdr-unop)
                      #(struct:var-exp lst)))
                  #(struct:const-exp -1)))))
          (n #(struct:num-val 5))
          (i #(struct:num-val 1))
          (v #(struct:num-val 5))
          (x #(struct:num-val 10)))
         #(struct:end-cont)))))
|(apply-handler
   #(struct:num-val 99)
   #(struct:diff1-cont
     #(struct:const-exp -1)
     ((lst
       #(struct:list-val
         (#(struct:num-val 2) #(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:try-cont
       x
       #(struct:const-exp -1)
       ((lst
         #(struct:list-val
           (#(struct:num-val 2) #(struct:num-val 3))))
        (inner2
          lst
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:null?-unop)
              #(struct:var-exp lst))
            #(struct:raise-exp #(struct:const-exp 99))
            #(struct:if-exp
              #(struct:unop-exp
                #(struct:zero?-unop)
                #(struct:diff-exp
                  #(struct:unop-exp
                    #(struct:car-unop)
                    #(struct:var-exp lst))
                  #(struct:var-exp n)))
              #(struct:const-exp 0)
              #(struct:diff-exp
                #(struct:call-exp
                  #(struct:var-exp inner2)
                  #(struct:unop-exp
                    #(struct:cdr-unop)
                    #(struct:var-exp lst)))
                #(struct:const-exp -1)))))
        (n #(struct:num-val 5))
        (i #(struct:num-val 1))
        (v #(struct:num-val 5))
        (x #(struct:num-val 10)))
       #(struct:end-cont))))
|(apply-handler
   #(struct:num-val 99)
   #(struct:try-cont
     x
     #(struct:const-exp -1)
     ((lst
       #(struct:list-val
         (#(struct:num-val 2) #(struct:num-val 3))))
      (inner2
        lst
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:null?-unop)
            #(struct:var-exp lst))
          #(struct:raise-exp #(struct:const-exp 99))
          #(struct:if-exp
            #(struct:unop-exp
              #(struct:zero?-unop)
              #(struct:diff-exp
                #(struct:unop-exp
                  #(struct:car-unop)
                  #(struct:var-exp lst))
                #(struct:var-exp n)))
            #(struct:const-exp 0)
            #(struct:diff-exp
              #(struct:call-exp
                #(struct:var-exp inner2)
                #(struct:unop-exp
                  #(struct:cdr-unop)
                  #(struct:var-exp lst)))
              #(struct:const-exp -1)))))
      (n #(struct:num-val 5))
      (i #(struct:num-val 1))
      (v #(struct:num-val 5))
      (x #(struct:num-val 10)))
     #(struct:end-cont)))
|(value-of/k
   #(struct:const-exp -1)
   ((x #(struct:num-val 99))
    (lst
     #(struct:list-val (#(struct:num-val 2) #(struct:num-val 3))))
    (inner2
      lst
      #(struct:if-exp
        #(struct:unop-exp
          #(struct:null?-unop)
          #(struct:var-exp lst))
        #(struct:raise-exp #(struct:const-exp 99))
        #(struct:if-exp
          #(struct:unop-exp
            #(struct:zero?-unop)
            #(struct:diff-exp
              #(struct:unop-exp
                #(struct:car-unop)
                #(struct:var-exp lst))
              #(struct:var-exp n)))
          #(struct:const-exp 0)
          #(struct:diff-exp
            #(struct:call-exp
              #(struct:var-exp inner2)
              #(struct:unop-exp
                #(struct:cdr-unop)
                #(struct:var-exp lst)))
            #(struct:const-exp -1)))))
    (n #(struct:num-val 5))
    (i #(struct:num-val 1))
    (v #(struct:num-val 5))
    (x #(struct:num-val 10)))
   #(struct:end-cont))
|(apply-cont #(struct:end-cont) #(struct:num-val -1))
|#(struct:num-val -1)
> 
