(declare (block) (standard-bindings) (extended-bindings))
(begin
  (define std/srfi/101#kons::t
    (make-struct-type
     'std/srfi/101#kons::t
     '#f
     '3
     'kons
     '()
     '#f
     '(size tree rest)))
  (define std/srfi/101#kons? (make-struct-predicate std/srfi/101#kons::t))
  (define std/srfi/101#make-kons
    (lambda _$args83993_
      (apply make-struct-instance std/srfi/101#kons::t _$args83993_)))
  (define std/srfi/101#kons-size
    (make-struct-field-accessor std/srfi/101#kons::t '0))
  (define std/srfi/101#kons-tree
    (make-struct-field-accessor std/srfi/101#kons::t '1))
  (define std/srfi/101#kons-rest
    (make-struct-field-accessor std/srfi/101#kons::t '2))
  (define std/srfi/101#kons-size-set!
    (make-struct-field-mutator std/srfi/101#kons::t '0))
  (define std/srfi/101#kons-tree-set!
    (make-struct-field-mutator std/srfi/101#kons::t '1))
  (define std/srfi/101#kons-rest-set!
    (make-struct-field-mutator std/srfi/101#kons::t '2))
  (define std/srfi/101#node::t
    (make-struct-type
     'std/srfi/101#node::t
     '#f
     '3
     'node
     '()
     '#f
     '(val left right)))
  (define std/srfi/101#node? (make-struct-predicate std/srfi/101#node::t))
  (define std/srfi/101#make-node
    (lambda _$args83990_
      (apply make-struct-instance std/srfi/101#node::t _$args83990_)))
  (define std/srfi/101#node-val
    (make-struct-field-accessor std/srfi/101#node::t '0))
  (define std/srfi/101#node-left
    (make-struct-field-accessor std/srfi/101#node::t '1))
  (define std/srfi/101#node-right
    (make-struct-field-accessor std/srfi/101#node::t '2))
  (define std/srfi/101#node-val-set!
    (make-struct-field-mutator std/srfi/101#node::t '0))
  (define std/srfi/101#node-left-set!
    (make-struct-field-mutator std/srfi/101#node::t '1))
  (define std/srfi/101#node-right-set!
    (make-struct-field-mutator std/srfi/101#node::t '2))
  (define std/srfi/101#sub1 (lambda (_n83988_) (- _n83988_ '1)))
  (define std/srfi/101#add1 (lambda (_n83986_) (+ _n83986_ '1)))
  (define std/srfi/101#tree-val
    (lambda (_t83984_)
      (if (##structure-instance-of? _t83984_ 'std/srfi/101#node::t)
          (##structure-ref _t83984_ '1 std/srfi/101#node::t '#f)
          _t83984_)))
  (define std/srfi/101#tree-map
    (lambda (_f83981_ _t83982_)
      (if (##structure-instance-of? _t83982_ 'std/srfi/101#node::t)
          (##structure
           std/srfi/101#node::t
           (_f83981_ (##structure-ref _t83982_ '1 std/srfi/101#node::t '#f))
           (std/srfi/101#tree-map
            _f83981_
            (##structure-ref _t83982_ '2 std/srfi/101#node::t '#f))
           (std/srfi/101#tree-map
            _f83981_
            (##structure-ref _t83982_ '3 std/srfi/101#node::t '#f)))
          (_f83981_ _t83982_))))
  (define std/srfi/101#tree-for-each
    (lambda (_f83978_ _t83979_)
      (if (##structure-instance-of? _t83979_ 'std/srfi/101#node::t)
          (begin
            (_f83978_ (##structure-ref _t83979_ '1 std/srfi/101#node::t '#f))
            (std/srfi/101#tree-for-each
             _f83978_
             (##structure-ref _t83979_ '2 std/srfi/101#node::t '#f))
            (std/srfi/101#tree-for-each
             _f83978_
             (##structure-ref _t83979_ '3 std/srfi/101#node::t '#f)))
          (_f83978_ _t83979_))))
  (define std/srfi/101#tree-map/n
    (lambda (_f83971_ _ts83972_)
      (let _recr83974_ ((_ts83976_ _ts83972_))
        (if (and (pair? _ts83976_)
                 (##structure-instance-of?
                  (car _ts83976_)
                  'std/srfi/101#node::t))
            (##structure
             std/srfi/101#node::t
             (apply _f83971_ (map std/srfi/101#node-val _ts83976_))
             (_recr83974_ (map std/srfi/101#node-left _ts83976_))
             (_recr83974_ (map std/srfi/101#node-right _ts83976_)))
            (apply _f83971_ _ts83976_)))))
  (define std/srfi/101#tree-for-each/n
    (lambda (_f83964_ _ts83965_)
      (let _recr83967_ ((_ts83969_ _ts83965_))
        (if (and (pair? _ts83969_)
                 (##structure-instance-of?
                  (car _ts83969_)
                  'std/srfi/101#node::t))
            (begin
              (apply _f83964_ (map std/srfi/101#node-val _ts83969_))
              (_recr83967_ (map std/srfi/101#node-left _ts83969_))
              (_recr83967_ (map std/srfi/101#node-right _ts83969_)))
            (apply _f83964_ _ts83969_)))))
  (define std/srfi/101#build-tree
    (lambda (_i83954_ _f83955_)
      (let _rec83957_ ((_i83959_ _i83954_) (_o83960_ '0))
        (if (= '1 _i83959_)
            (_f83955_ _o83960_)
            (let ((_i/283962_ (std/srfi/101#half _i83959_)))
              (##structure
               std/srfi/101#node::t
               (_f83955_ _o83960_)
               (_rec83957_ _i/283962_ (std/srfi/101#add1 _o83960_))
               (_rec83957_ _i/283962_ (+ '1 _o83960_ _i/283962_))))))))
  (define std/srfi/101#half
    (lambda (_n83952_) (arithmetic-shift _n83952_ '-1)))
  (define std/srfi/101#tr:make-tree
    (lambda (_i83943_ _x83944_)
      (let _recr83946_ ((_i83948_ _i83943_))
        (if (= '1 _i83948_)
            _x83944_
            (let ((_n83950_ (_recr83946_ (std/srfi/101#half _i83948_))))
              (##structure
               std/srfi/101#node::t
               _x83944_
               _n83950_
               _n83950_))))))
  (define std/srfi/101#tree-ref/update
    (lambda (_mid83932_ _t83933_ _i83934_ _f83935_)
      (if (zero? _i83934_)
          (if (##structure-instance-of? _t83933_ 'std/srfi/101#node::t)
              (values (##structure-ref _t83933_ '1 std/srfi/101#node::t '#f)
                      (##structure
                       std/srfi/101#node::t
                       (_f83935_
                        (##structure-ref _t83933_ '1 std/srfi/101#node::t '#f))
                       (##structure-ref _t83933_ '2 std/srfi/101#node::t '#f)
                       (##structure-ref _t83933_ '3 std/srfi/101#node::t '#f)))
              (values _t83933_ (_f83935_ _t83933_)))
          (if (<= _i83934_ _mid83932_)
              (let ((_g83995_
                     (std/srfi/101#tree-ref/update
                      (std/srfi/101#half (std/srfi/101#sub1 _mid83932_))
                      (##structure-ref _t83933_ '2 std/srfi/101#node::t '#f)
                      (std/srfi/101#sub1 _i83934_)
                      _f83935_)))
                (begin
                  (let ((_g83996_
                         (if (##values? _g83995_)
                             (##vector-length _g83995_)
                             1)))
                    (if (not (##fx= _g83996_ 2))
                        (error "Context expects 2 values" _g83996_)))
                  (let ((_v*83937_ (##vector-ref _g83995_ 0))
                        (_t*83938_ (##vector-ref _g83995_ 1)))
                    (values _v*83937_
                            (##structure
                             std/srfi/101#node::t
                             (##structure-ref
                              _t83933_
                              '1
                              std/srfi/101#node::t
                              '#f)
                             _t*83938_
                             (##structure-ref
                              _t83933_
                              '3
                              std/srfi/101#node::t
                              '#f))))))
              (let ((_g83997_
                     (std/srfi/101#tree-ref/update
                      (std/srfi/101#half (std/srfi/101#sub1 _mid83932_))
                      (##structure-ref _t83933_ '3 std/srfi/101#node::t '#f)
                      (std/srfi/101#sub1 (- _i83934_ _mid83932_))
                      _f83935_)))
                (begin
                  (let ((_g83998_
                         (if (##values? _g83997_)
                             (##vector-length _g83997_)
                             1)))
                    (if (not (##fx= _g83998_ 2))
                        (error "Context expects 2 values" _g83998_)))
                  (let ((_v*83940_ (##vector-ref _g83997_ 0))
                        (_t*83941_ (##vector-ref _g83997_ 1)))
                    (values _v*83940_
                            (##structure
                             std/srfi/101#node::t
                             (##structure-ref
                              _t83933_
                              '1
                              std/srfi/101#node::t
                              '#f)
                             (##structure-ref
                              _t83933_
                              '2
                              std/srfi/101#node::t
                              '#f)
                             _t*83941_)))))))))
  (define std/srfi/101#tree-ref/a
    (lambda (_t83928_ _i83929_ _mid83930_)
      (if (zero? _i83929_)
          (std/srfi/101#tree-val _t83928_)
          (if (<= _i83929_ _mid83930_)
              (std/srfi/101#tree-ref/a
               (##structure-ref _t83928_ '2 std/srfi/101#node::t '#f)
               (std/srfi/101#sub1 _i83929_)
               (std/srfi/101#half (std/srfi/101#sub1 _mid83930_)))
              (std/srfi/101#tree-ref/a
               (##structure-ref _t83928_ '3 std/srfi/101#node::t '#f)
               (std/srfi/101#sub1 (- _i83929_ _mid83930_))
               (std/srfi/101#half (std/srfi/101#sub1 _mid83930_)))))))
  (define std/srfi/101#tree-ref
    (lambda (_size83924_ _t83925_ _i83926_)
      (if (zero? _i83926_)
          (std/srfi/101#tree-val _t83925_)
          (std/srfi/101#tree-ref/a
           _t83925_
           _i83926_
           (std/srfi/101#half (std/srfi/101#sub1 _size83924_))))))
  (define std/srfi/101#tree-update
    (lambda (_size83913_ _t83914_ _i83915_ _f83916_)
      (let _recr83918_ ((_mid83920_
                         (std/srfi/101#half (std/srfi/101#sub1 _size83913_)))
                        (_t83921_ _t83914_)
                        (_i83922_ _i83915_))
        (if (zero? _i83922_)
            (if (##structure-instance-of? _t83921_ 'std/srfi/101#node::t)
                (##structure
                 std/srfi/101#node::t
                 (_f83916_
                  (##structure-ref _t83921_ '1 std/srfi/101#node::t '#f))
                 (##structure-ref _t83921_ '2 std/srfi/101#node::t '#f)
                 (##structure-ref _t83921_ '3 std/srfi/101#node::t '#f))
                (_f83916_ _t83921_))
            (if (<= _i83922_ _mid83920_)
                (##structure
                 std/srfi/101#node::t
                 (##structure-ref _t83921_ '1 std/srfi/101#node::t '#f)
                 (_recr83918_
                  (std/srfi/101#half (std/srfi/101#sub1 _mid83920_))
                  (##structure-ref _t83921_ '2 std/srfi/101#node::t '#f)
                  (std/srfi/101#sub1 _i83922_))
                 (##structure-ref _t83921_ '3 std/srfi/101#node::t '#f))
                (##structure
                 std/srfi/101#node::t
                 (##structure-ref _t83921_ '1 std/srfi/101#node::t '#f)
                 (##structure-ref _t83921_ '2 std/srfi/101#node::t '#f)
                 (_recr83918_
                  (std/srfi/101#half (std/srfi/101#sub1 _mid83920_))
                  (##structure-ref _t83921_ '3 std/srfi/101#node::t '#f)
                  (std/srfi/101#sub1 (- _i83922_ _mid83920_)))))))))
  (define std/srfi/101#ra:null '())
  (define std/srfi/101#ra:pair? std/srfi/101#kons?)
  (define std/srfi/101#ra:null? null?)
  (define std/srfi/101#ra:cons
    (lambda (_x83908_ _ls83909_)
      (if (##structure-instance-of? _ls83909_ 'std/srfi/101#kons::t)
          (let ((_s83911_
                 (##structure-ref _ls83909_ '1 std/srfi/101#kons::t '#f)))
            (if (and (##structure-instance-of?
                      (##structure-ref _ls83909_ '3 std/srfi/101#kons::t '#f)
                      'std/srfi/101#kons::t)
                     (= (##structure-ref
                         (##structure-ref
                          _ls83909_
                          '3
                          std/srfi/101#kons::t
                          '#f)
                         '1
                         std/srfi/101#kons::t
                         '#f)
                        _s83911_))
                (##structure
                 std/srfi/101#kons::t
                 (+ '1 _s83911_ _s83911_)
                 (##structure
                  std/srfi/101#node::t
                  _x83908_
                  (##structure-ref _ls83909_ '2 std/srfi/101#kons::t '#f)
                  (##structure-ref
                   (##structure-ref _ls83909_ '3 std/srfi/101#kons::t '#f)
                   '2
                   std/srfi/101#kons::t
                   '#f))
                 (##structure-ref
                  (##structure-ref _ls83909_ '3 std/srfi/101#kons::t '#f)
                  '3
                  std/srfi/101#kons::t
                  '#f))
                (##structure std/srfi/101#kons::t '1 _x83908_ _ls83909_)))
          (##structure std/srfi/101#kons::t '1 _x83908_ _ls83909_))))
  (define std/srfi/101#ra:car+cdr
    (lambda (_p83904_)
      (if (##structure-instance-of? _p83904_ 'std/srfi/101#kons::t)
          '#!void
          (error '"assertion failure" '(kons? p)))
      (if (##structure-instance-of?
           (##structure-ref _p83904_ '2 std/srfi/101#kons::t '#f)
           'std/srfi/101#node::t)
          (let ((_s*83906_
                 (std/srfi/101#half
                  (##structure-ref _p83904_ '1 std/srfi/101#kons::t '#f))))
            (values (std/srfi/101#tree-val
                     (##structure-ref _p83904_ '2 std/srfi/101#kons::t '#f))
                    (##structure
                     std/srfi/101#kons::t
                     _s*83906_
                     (##structure-ref
                      (##structure-ref _p83904_ '2 std/srfi/101#kons::t '#f)
                      '2
                      std/srfi/101#node::t
                      '#f)
                     (##structure
                      std/srfi/101#kons::t
                      _s*83906_
                      (##structure-ref
                       (##structure-ref _p83904_ '2 std/srfi/101#kons::t '#f)
                       '3
                       std/srfi/101#node::t
                       '#f)
                      (##structure-ref
                       _p83904_
                       '3
                       std/srfi/101#kons::t
                       '#f)))))
          (values (##structure-ref _p83904_ '2 std/srfi/101#kons::t '#f)
                  (##structure-ref _p83904_ '3 std/srfi/101#kons::t '#f)))))
  (define std/srfi/101#ra:car
    (lambda (_p83898_)
      (call-with-values
       (lambda () (std/srfi/101#ra:car+cdr _p83898_))
       (lambda (_car83901_ _cdr83902_) _car83901_))))
  (define std/srfi/101#ra:cdr
    (lambda (_p83892_)
      (call-with-values
       (lambda () (std/srfi/101#ra:car+cdr _p83892_))
       (lambda (_car83895_ _cdr83896_) _cdr83896_))))
  (define std/srfi/101#ra:list-ref/update
    (lambda (_ls83877_ _i83878_ _f83879_)
      (let _recr83881_ ((_xs83883_ _ls83877_) (_j83884_ _i83878_))
        (if (< _j83884_
               (##structure-ref _xs83883_ '1 std/srfi/101#kons::t '#f))
            (let ((_g83999_
                   (std/srfi/101#tree-ref/update
                    (std/srfi/101#half
                     (std/srfi/101#sub1
                      (##structure-ref _xs83883_ '1 std/srfi/101#kons::t '#f)))
                    (##structure-ref _xs83883_ '2 std/srfi/101#kons::t '#f)
                    _j83884_
                    _f83879_)))
              (begin
                (let ((_g84000_
                       (if (##values? _g83999_) (##vector-length _g83999_) 1)))
                  (if (not (##fx= _g84000_ 2))
                      (error "Context expects 2 values" _g84000_)))
                (let ((_v*83886_ (##vector-ref _g83999_ 0))
                      (_t*83887_ (##vector-ref _g83999_ 1)))
                  (values _v*83886_
                          (##structure
                           std/srfi/101#kons::t
                           (##structure-ref
                            _xs83883_
                            '1
                            std/srfi/101#kons::t
                            '#f)
                           _t*83887_
                           (##structure-ref
                            _xs83883_
                            '3
                            std/srfi/101#kons::t
                            '#f))))))
            (let ((_g84001_
                   (_recr83881_
                    (##structure-ref _xs83883_ '3 std/srfi/101#kons::t '#f)
                    (- _j83884_
                       (##structure-ref
                        _xs83883_
                        '1
                        std/srfi/101#kons::t
                        '#f)))))
              (begin
                (let ((_g84002_
                       (if (##values? _g84001_) (##vector-length _g84001_) 1)))
                  (if (not (##fx= _g84002_ 2))
                      (error "Context expects 2 values" _g84002_)))
                (let ((_v*83889_ (##vector-ref _g84001_ 0))
                      (_r*83890_ (##vector-ref _g84001_ 1)))
                  (values _v*83889_
                          (##structure
                           std/srfi/101#kons::t
                           (##structure-ref
                            _xs83883_
                            '1
                            std/srfi/101#kons::t
                            '#f)
                           (##structure-ref
                            _xs83883_
                            '2
                            std/srfi/101#kons::t
                            '#f)
                           _r*83890_)))))))))
  (define std/srfi/101#ra:list-update
    (lambda (_ls83866_ _i83867_ _f83868_)
      (let _recr83870_ ((_xs83872_ _ls83866_) (_j83873_ _i83867_))
        (let ((_s83875_
               (##structure-ref _xs83872_ '1 std/srfi/101#kons::t '#f)))
          (if (< _j83873_ _s83875_)
              (##structure
               std/srfi/101#kons::t
               _s83875_
               (std/srfi/101#tree-update
                _s83875_
                (##structure-ref _xs83872_ '2 std/srfi/101#kons::t '#f)
                _j83873_
                _f83868_)
               (##structure-ref _xs83872_ '3 std/srfi/101#kons::t '#f))
              (##structure
               std/srfi/101#kons::t
               _s83875_
               (##structure-ref _xs83872_ '2 std/srfi/101#kons::t '#f)
               (_recr83870_
                (##structure-ref _xs83872_ '3 std/srfi/101#kons::t '#f)
                (- _j83873_ _s83875_))))))))
  (define std/srfi/101#ra:list-ref/set
    (lambda (_ls83861_ _i83862_ _v83863_)
      (std/srfi/101#ra:list-ref/update
       _ls83861_
       _i83862_
       (lambda (_g84003_) _v83863_))))
  (define std/srfi/101#ra:list
    (lambda _xs83859_
      (foldr1 std/srfi/101#ra:cons std/srfi/101#ra:null _xs83859_)))
  (define std/srfi/101#ra:make-list__0
    (lambda (_k83847_) (std/srfi/101#ra:make-list__1 _k83847_ '0)))
  (define std/srfi/101#ra:make-list__1
    (lambda (_k83849_ _obj83850_)
      (let _loop83852_ ((_n83854_ _k83849_) (_a83855_ std/srfi/101#ra:null))
        (if (zero? _n83854_)
            _a83855_
            (let ((_t83857_ (std/srfi/101#largest-skew-binary _n83854_)))
              (_loop83852_
               (- _n83854_ _t83857_)
               (##structure
                std/srfi/101#kons::t
                _t83857_
                (std/srfi/101#tr:make-tree _t83857_ _obj83850_)
                _a83855_)))))))
  (define std/srfi/101#ra:make-list
    (lambda _g84005_
      (let ((_g84004_ (length _g84005_)))
        (cond ((##fx= _g84004_ 1)
               (apply std/srfi/101#ra:make-list__0 _g84005_))
              ((##fx= _g84004_ 2)
               (apply std/srfi/101#ra:make-list__1 _g84005_))
              (else
               (##raise-wrong-number-of-arguments-exception
                std/srfi/101#ra:make-list
                _g84005_))))))
  (define std/srfi/101#skew-succ
    (lambda (_t83845_) (std/srfi/101#add1 (arithmetic-shift _t83845_ '1))))
  (define std/srfi/101#largest-skew-binary
    (lambda (_n83838_)
      (if (= '1 _n83838_)
          '1
          (let* ((_t83840_
                  (std/srfi/101#largest-skew-binary
                   (std/srfi/101#half _n83838_)))
                 (_s83842_ (std/srfi/101#skew-succ _t83840_)))
            (if (> _s83842_ _n83838_) _t83840_ _s83842_)))))
  (define std/srfi/101#ra:list?
    (lambda (_x83833_)
      (let ((_$e83835_ (std/srfi/101#ra:null? _x83833_)))
        (if _$e83835_
            _$e83835_
            (if (##structure-instance-of? _x83833_ 'std/srfi/101#kons::t)
                (std/srfi/101#ra:list?
                 (##structure-ref _x83833_ '3 std/srfi/101#kons::t '#f))
                '#f)))))
  (define std/srfi/101#ra:caar
    (lambda (_ls83831_) (std/srfi/101#ra:car (std/srfi/101#ra:car _ls83831_))))
  (define std/srfi/101#ra:cadr
    (lambda (_ls83829_) (std/srfi/101#ra:car (std/srfi/101#ra:cdr _ls83829_))))
  (define std/srfi/101#ra:cddr
    (lambda (_ls83827_) (std/srfi/101#ra:cdr (std/srfi/101#ra:cdr _ls83827_))))
  (define std/srfi/101#ra:cdar
    (lambda (_ls83825_) (std/srfi/101#ra:cdr (std/srfi/101#ra:car _ls83825_))))
  (define std/srfi/101#ra:caaar
    (lambda (_ls83823_)
      (std/srfi/101#ra:car
       (std/srfi/101#ra:car (std/srfi/101#ra:car _ls83823_)))))
  (define std/srfi/101#ra:caadr
    (lambda (_ls83821_)
      (std/srfi/101#ra:car
       (std/srfi/101#ra:car (std/srfi/101#ra:cdr _ls83821_)))))
  (define std/srfi/101#ra:caddr
    (lambda (_ls83819_)
      (std/srfi/101#ra:car
       (std/srfi/101#ra:cdr (std/srfi/101#ra:cdr _ls83819_)))))
  (define std/srfi/101#ra:cadar
    (lambda (_ls83817_)
      (std/srfi/101#ra:car
       (std/srfi/101#ra:cdr (std/srfi/101#ra:car _ls83817_)))))
  (define std/srfi/101#ra:cdaar
    (lambda (_ls83815_)
      (std/srfi/101#ra:cdr
       (std/srfi/101#ra:car (std/srfi/101#ra:car _ls83815_)))))
  (define std/srfi/101#ra:cdadr
    (lambda (_ls83813_)
      (std/srfi/101#ra:cdr
       (std/srfi/101#ra:car (std/srfi/101#ra:cdr _ls83813_)))))
  (define std/srfi/101#ra:cdddr
    (lambda (_ls83811_)
      (std/srfi/101#ra:cdr
       (std/srfi/101#ra:cdr (std/srfi/101#ra:cdr _ls83811_)))))
  (define std/srfi/101#ra:cddar
    (lambda (_ls83809_)
      (std/srfi/101#ra:cdr
       (std/srfi/101#ra:cdr (std/srfi/101#ra:car _ls83809_)))))
  (define std/srfi/101#ra:caaaar
    (lambda (_ls83807_)
      (std/srfi/101#ra:car
       (std/srfi/101#ra:car
        (std/srfi/101#ra:car (std/srfi/101#ra:car _ls83807_))))))
  (define std/srfi/101#ra:caaadr
    (lambda (_ls83805_)
      (std/srfi/101#ra:car
       (std/srfi/101#ra:car
        (std/srfi/101#ra:car (std/srfi/101#ra:cdr _ls83805_))))))
  (define std/srfi/101#ra:caaddr
    (lambda (_ls83803_)
      (std/srfi/101#ra:car
       (std/srfi/101#ra:car
        (std/srfi/101#ra:cdr (std/srfi/101#ra:cdr _ls83803_))))))
  (define std/srfi/101#ra:caadar
    (lambda (_ls83801_)
      (std/srfi/101#ra:car
       (std/srfi/101#ra:car
        (std/srfi/101#ra:cdr (std/srfi/101#ra:car _ls83801_))))))
  (define std/srfi/101#ra:cadaar
    (lambda (_ls83799_)
      (std/srfi/101#ra:car
       (std/srfi/101#ra:cdr
        (std/srfi/101#ra:car (std/srfi/101#ra:car _ls83799_))))))
  (define std/srfi/101#ra:cadadr
    (lambda (_ls83797_)
      (std/srfi/101#ra:car
       (std/srfi/101#ra:cdr
        (std/srfi/101#ra:car (std/srfi/101#ra:cdr _ls83797_))))))
  (define std/srfi/101#ra:cadddr
    (lambda (_ls83795_)
      (std/srfi/101#ra:car
       (std/srfi/101#ra:cdr
        (std/srfi/101#ra:cdr (std/srfi/101#ra:cdr _ls83795_))))))
  (define std/srfi/101#ra:caddar
    (lambda (_ls83793_)
      (std/srfi/101#ra:car
       (std/srfi/101#ra:cdr
        (std/srfi/101#ra:cdr (std/srfi/101#ra:car _ls83793_))))))
  (define std/srfi/101#ra:cdaaar
    (lambda (_ls83791_)
      (std/srfi/101#ra:cdr
       (std/srfi/101#ra:car
        (std/srfi/101#ra:car (std/srfi/101#ra:car _ls83791_))))))
  (define std/srfi/101#ra:cdaadr
    (lambda (_ls83789_)
      (std/srfi/101#ra:cdr
       (std/srfi/101#ra:car
        (std/srfi/101#ra:car (std/srfi/101#ra:cdr _ls83789_))))))
  (define std/srfi/101#ra:cdaddr
    (lambda (_ls83787_)
      (std/srfi/101#ra:cdr
       (std/srfi/101#ra:car
        (std/srfi/101#ra:cdr (std/srfi/101#ra:cdr _ls83787_))))))
  (define std/srfi/101#ra:cdadar
    (lambda (_ls83785_)
      (std/srfi/101#ra:cdr
       (std/srfi/101#ra:car
        (std/srfi/101#ra:cdr (std/srfi/101#ra:car _ls83785_))))))
  (define std/srfi/101#ra:cddaar
    (lambda (_ls83783_)
      (std/srfi/101#ra:cdr
       (std/srfi/101#ra:cdr
        (std/srfi/101#ra:car (std/srfi/101#ra:car _ls83783_))))))
  (define std/srfi/101#ra:cddadr
    (lambda (_ls83781_)
      (std/srfi/101#ra:cdr
       (std/srfi/101#ra:cdr
        (std/srfi/101#ra:car (std/srfi/101#ra:cdr _ls83781_))))))
  (define std/srfi/101#ra:cddddr
    (lambda (_ls83779_)
      (std/srfi/101#ra:cdr
       (std/srfi/101#ra:cdr
        (std/srfi/101#ra:cdr (std/srfi/101#ra:cdr _ls83779_))))))
  (define std/srfi/101#ra:cdddar
    (lambda (_ls83777_)
      (std/srfi/101#ra:cdr
       (std/srfi/101#ra:cdr
        (std/srfi/101#ra:cdr (std/srfi/101#ra:car _ls83777_))))))
  (define std/srfi/101#ra:length
    (lambda (_ls83771_)
      (if (std/srfi/101#ra:list? _ls83771_)
          '#!void
          (error '"assertion failure" '(ra:list? ls)))
      (let _recr83773_ ((_ls83775_ _ls83771_))
        (if (##structure-instance-of? _ls83775_ 'std/srfi/101#kons::t)
            (+ (##structure-ref _ls83775_ '1 std/srfi/101#kons::t '#f)
               (_recr83773_
                (##structure-ref _ls83775_ '3 std/srfi/101#kons::t '#f)))
            '0))))
  (define std/srfi/101#make-foldl
    (lambda (_empty?83761_ _first83762_ _rest83763_)
      (letrec ((_f83765_
                (lambda (_cons83767_ _empty83768_ _ls83769_)
                  (if (_empty?83761_ _ls83769_)
                      _empty83768_
                      (_f83765_
                       _cons83767_
                       (_cons83767_ (_first83762_ _ls83769_) _empty83768_)
                       (_rest83763_ _ls83769_))))))
        _f83765_)))
  (define std/srfi/101#make-foldr
    (lambda (_empty?83751_ _first83752_ _rest83753_)
      (letrec ((_f83755_
                (lambda (_cons83757_ _empty83758_ _ls83759_)
                  (if (_empty?83751_ _ls83759_)
                      _empty83758_
                      (_cons83757_
                       (_first83752_ _ls83759_)
                       (_f83755_
                        _cons83757_
                        _empty83758_
                        (_rest83753_ _ls83759_)))))))
        _f83755_)))
  (define std/srfi/101#ra:foldl/1
    (std/srfi/101#make-foldl
     std/srfi/101#ra:null?
     std/srfi/101#ra:car
     std/srfi/101#ra:cdr))
  (define std/srfi/101#ra:foldr/1
    (std/srfi/101#make-foldr
     std/srfi/101#ra:null?
     std/srfi/101#ra:car
     std/srfi/101#ra:cdr))
  (define std/srfi/101#ra:append
    (lambda _lss83745_
      (if (null? _lss83745_)
          std/srfi/101#ra:null
          (let _recr83747_ ((_lss83749_ _lss83745_))
            (if (null? (cdr _lss83749_))
                (car _lss83749_)
                (std/srfi/101#ra:foldr/1
                 std/srfi/101#ra:cons
                 (_recr83747_ (cdr _lss83749_))
                 (car _lss83749_)))))))
  (define std/srfi/101#ra:reverse
    (lambda (_ls83743_)
      (std/srfi/101#ra:foldl/1
       std/srfi/101#ra:cons
       std/srfi/101#ra:null
       _ls83743_)))
  (define std/srfi/101#ra:list-tail
    (lambda (_ls83735_ _i83736_)
      (let _loop83738_ ((_xs83740_ _ls83735_) (_j83741_ _i83736_))
        (if (zero? _j83741_)
            _xs83740_
            (_loop83738_
             (std/srfi/101#ra:cdr _xs83740_)
             (std/srfi/101#sub1 _j83741_))))))
  (define std/srfi/101#ra:list-ref
    (lambda (_ls83727_ _i83728_)
      (let _loop83730_ ((_xs83732_ _ls83727_) (_j83733_ _i83728_))
        (if (< _j83733_
               (##structure-ref _xs83732_ '1 std/srfi/101#kons::t '#f))
            (std/srfi/101#tree-ref
             (##structure-ref _xs83732_ '1 std/srfi/101#kons::t '#f)
             (##structure-ref _xs83732_ '2 std/srfi/101#kons::t '#f)
             _j83733_)
            (_loop83730_
             (##structure-ref _xs83732_ '3 std/srfi/101#kons::t '#f)
             (- _j83733_
                (##structure-ref _xs83732_ '1 std/srfi/101#kons::t '#f)))))))
  (define std/srfi/101#ra:list-set
    (lambda (_ls83721_ _i83722_ _v83723_)
      (let ((_g84006_
             (std/srfi/101#ra:list-ref/set _ls83721_ _i83722_ _v83723_)))
        (begin
          (let ((_g84007_
                 (if (##values? _g84006_) (##vector-length _g84006_) 1)))
            (if (not (##fx= _g84007_ 2))
                (error "Context expects 2 values" _g84007_)))
          (let ((_l*83725_ (##vector-ref _g84006_ 1))) _l*83725_)))))
  (define std/srfi/101#ra:map__0
    (lambda (_f83707_ _ls83708_)
      (let _recr83710_ ((_ls83712_ _ls83708_))
        (if (##structure-instance-of? _ls83712_ 'std/srfi/101#kons::t)
            (##structure
             std/srfi/101#kons::t
             (##structure-ref _ls83712_ '1 std/srfi/101#kons::t '#f)
             (std/srfi/101#tree-map
              _f83707_
              (##structure-ref _ls83712_ '2 std/srfi/101#kons::t '#f))
             (_recr83710_
              (##structure-ref _ls83712_ '3 std/srfi/101#kons::t '#f)))
            std/srfi/101#ra:null))))
  (define std/srfi/101#ra:map__1
    (lambda (_f83714_ . _lss83715_)
      (let _recr83717_ ((_lss83719_ _lss83715_))
        (if (std/srfi/101#ra:null? (car _lss83719_))
            std/srfi/101#ra:null
            (##structure
             std/srfi/101#kons::t
             (##structure-ref (car _lss83719_) '1 std/srfi/101#kons::t '#f)
             (std/srfi/101#tree-map/n
              _f83714_
              (map std/srfi/101#kons-tree _lss83719_))
             (_recr83717_ (map std/srfi/101#kons-rest _lss83719_)))))))
  (define std/srfi/101#ra:map
    (lambda _g84009_
      (let ((_g84008_ (length _g84009_)))
        (cond ((##fx= _g84008_ 2) (apply std/srfi/101#ra:map__0 _g84009_))
              ((##fx>= _g84008_ 1) (apply std/srfi/101#ra:map__1 _g84009_))
              (else
               (##raise-wrong-number-of-arguments-exception
                std/srfi/101#ra:map
                _g84009_))))))
  (define std/srfi/101#ra:for-each__0
    (lambda (_f83697_ _ls83698_)
      (if (##structure-instance-of? _ls83698_ 'std/srfi/101#kons::t)
          (begin
            (std/srfi/101#tree-for-each
             _f83697_
             (##structure-ref _ls83698_ '2 std/srfi/101#kons::t '#f))
            (std/srfi/101#ra:for-each__0
             _f83697_
             (##structure-ref _ls83698_ '3 std/srfi/101#kons::t '#f)))
          '#!void)))
  (define std/srfi/101#ra:for-each__1
    (lambda (_f83700_ . _lss83701_)
      (let _recr83703_ ((_lss83705_ _lss83701_))
        (if (##structure-instance-of? (car _lss83705_) 'std/srfi/101#kons::t)
            (begin
              (std/srfi/101#tree-map/n
               _f83700_
               (map std/srfi/101#kons-tree _lss83705_))
              (_recr83703_ (map std/srfi/101#kons-rest _lss83705_)))
            '#!void))))
  (define std/srfi/101#ra:for-each
    (lambda _g84011_
      (let ((_g84010_ (length _g84011_)))
        (cond ((##fx= _g84010_ 2) (apply std/srfi/101#ra:for-each__0 _g84011_))
              ((##fx>= _g84010_ 1)
               (apply std/srfi/101#ra:for-each__1 _g84011_))
              (else
               (##raise-wrong-number-of-arguments-exception
                std/srfi/101#ra:for-each
                _g84011_))))))
  (define std/srfi/101#ra:random-access-list->linear-access-list
    (lambda (_x83695_) (std/srfi/101#ra:foldr/1 cons '() _x83695_)))
  (define std/srfi/101#ra:linear-access-list->random-access-list
    (lambda (_x83693_) (foldr1 std/srfi/101#ra:cons '() _x83693_)))
  (define std/srfi/101#get-cached
    (let ((_h83677_ (make-table 'test: eq?)))
      (lambda (_x83679_)
        (letrec ((_f83681_
                  (lambda (_x83691_)
                    (if (pair? _x83691_)
                        (std/srfi/101#ra:cons
                         (_f83681_ (car _x83691_))
                         (_f83681_ (cdr _x83691_)))
                        (if (vector? _x83691_)
                            (vector-map _f83681_ _x83691_)
                            _x83691_)))))
          (if (not (or (pair? _x83679_) (vector? _x83679_)))
              _x83679_
              (let ((_$e83686_ (table-ref _h83677_ _x83679_ '#f)))
                (if _$e83686_
                    _$e83686_
                    (let ((_v83689_ (_f83681_ _x83679_)))
                      (table-set! _h83677_ _x83679_ _v83689_)
                      _v83689_)))))))))
