(declare (block) (standard-bindings) (extended-bindings))
(begin
  (declare (not safe))
  (define std/generic/dispatch#type-of
    (lambda (_obj2782_)
      (declare (not interrupts-enabled))
      (let ((_t2785_ (##type _obj2782_)))
        (if (##fx= _t2785_ (macro-type-mem1))
            (let ((_st2787_ (##subtype _obj2782_)))
              (if (##fx= _st2787_ (macro-subtype-structure))
                  (##type-id (##structure-type _obj2782_))
                  (if (##fx= _st2787_ (macro-subtype-boxvalues))
                      (if (##fx= (##vector-length _obj2782_) '1) 'box 'values)
                      (##vector-ref
                       std/generic/dispatch#+subtype-id+
                       _st2787_))))
            (if (##fx= _t2785_ (macro-type-mem2))
                'pair
                (if (##fx= _t2785_ (macro-type-fixnum))
                    'fixnum
                    (if (##char? _obj2782_)
                        'char
                        (if (##eq? _obj2782_ '())
                            'null
                            (if (##eq? _obj2782_ '#f)
                                'boolean
                                (if (##eq? _obj2782_ '#t)
                                    'boolean
                                    (if (##eq? _obj2782_ '#!void)
                                        'void
                                        (if (##eq? _obj2782_ '#!eof)
                                            'eof
                                            'unknown))))))))))))
  (define std/generic/dispatch#linear-type-of
    (lambda (_obj2774_)
      (let ((_t2776_ (##type _obj2774_)))
        (if (##fx= _t2776_ (macro-type-mem1))
            (let ((_st2778_ (##subtype _obj2774_)))
              (if (##fx= _st2778_ (macro-subtype-structure))
                  (let ((_klass2780_ (##structure-type _obj2774_)))
                    (std/generic/dispatch#type-linearize-class _klass2780_))
                  (if (##fx= _st2778_ (macro-subtype-boxvalues))
                      (if (##fx= (##vector-length _obj2774_) '1)
                          '(box t)
                          '(values t))
                      (##vector-ref
                       std/generic/dispatch#+subtype-linear+
                       _st2778_))))
            (if (##fx= _t2776_ (macro-type-mem2))
                '(pair t)
                (if (##fx= _t2776_ (macro-type-fixnum))
                    '(fixnum integer real number t)
                    (if (##char? _obj2774_)
                        '(char t)
                        (if (##eq? _obj2774_ '())
                            '(null t)
                            (if (##eq? _obj2774_ '#f)
                                '(boolean t)
                                (if (##eq? _obj2774_ '#t)
                                    '(boolean t)
                                    (if (##eq? _obj2774_ '#!void)
                                        '(void t)
                                        (if (##eq? _obj2774_ '#!eof)
                                            '(eof t)
                                            '(unknown)))))))))))))
  (define std/generic/dispatch#type-linearize-class
    (lambda (_klass2772_)
      (if (type-descriptor? _klass2772_)
          (if (type-descriptor-mixin _klass2772_)
              (std/generic/dispatch#type-linearize-class-type _klass2772_)
              (std/generic/dispatch#type-linearize-struct-type _klass2772_))
          (std/generic/dispatch#type-linearize-record-type__0 _klass2772_))))
  (define std/generic/dispatch#type-linearize-class-type
    (lambda (_klass2732_)
      (let _lp2734_ ((_rest2736_ (type-descriptor-mixin _klass2732_))
                     (_r2737_ (cons (##type-id _klass2732_) '())))
        (let* ((_rest27382746_ _rest2736_)
               (_else27402754_ (lambda () (foldl1 cons '(object t) _r2737_)))
               (_K27422760_
                (lambda (_rest2757_ _klass2758_)
                  (_lp2734_
                   _rest2757_
                   (cons (##type-id _klass2758_) _r2737_)))))
          (if (##pair? _rest27382746_)
              (let ((_hd27432763_ (##car _rest27382746_))
                    (_tl27442765_ (##cdr _rest27382746_)))
                (let* ((_klass2768_ _hd27432763_) (_rest2770_ _tl27442765_))
                  (_K27422760_ _rest2770_ _klass2768_)))
              (_else27402754_))))))
  (define std/generic/dispatch#type-linearize-struct-type
    (lambda (_klass2730_)
      (std/generic/dispatch#type-linearize-record-type__%
       _klass2730_
       '(object t))))
  (define std/generic/dispatch#type-linearize-record-type__%
    (lambda (_klass2712_ _base2713_)
      (let _lp2715_ ((_klass2717_ _klass2712_) (_r2718_ '()))
        (if (##type? _klass2717_)
            (_lp2715_
             (##type-super _klass2717_)
             (cons (##type-id _klass2717_) _r2718_))
            (foldl1 cons _base2713_ _r2718_)))))
  (define std/generic/dispatch#type-linearize-record-type__0
    (lambda (_klass2723_)
      (let ((_base2725_ '(t)))
        (std/generic/dispatch#type-linearize-record-type__%
         _klass2723_
         _base2725_))))
  (define std/generic/dispatch#type-linearize-record-type
    (lambda _g6461_
      (let ((_g6460_ (##length _g6461_)))
        (cond ((##fx= _g6460_ 1)
               (apply std/generic/dispatch#type-linearize-record-type__0
                      _g6461_))
              ((##fx= _g6460_ 2)
               (apply std/generic/dispatch#type-linearize-record-type__%
                      _g6461_))
              (else
               (##raise-wrong-number-of-arguments-exception
                std/generic/dispatch#type-linearize-record-type
                _g6461_))))))
  (define std/generic/dispatch#+subtype-id+ (make-vector '32 'unknown))
  (define std/generic/dispatch#+subtype-linear+ (make-vector '32 '(unknown)))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-vector)
   'vector)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-vector)
   '(vector t))
  (vector-set! std/generic/dispatch#+subtype-id+ (macro-subtype-pair) 'pair)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-pair)
   '(pair t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-ratnum)
   'ratnum)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-ratnum)
   '(ratnum real number t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-cpxnum)
   'cpxnum)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-cpxnum)
   '(cpxnum number t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-symbol)
   'symbol)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-symbol)
   '(symbol t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-keyword)
   'keyword)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-keyword)
   '(keyword t))
  (vector-set! std/generic/dispatch#+subtype-id+ (macro-subtype-frame) 'frame)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-frame)
   '(frame t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-continuation)
   'continuation)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-continuation)
   '(continuation t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-promise)
   'promise)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-promise)
   '(promise t))
  (vector-set! std/generic/dispatch#+subtype-id+ (macro-subtype-weak) 'weak)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-weak)
   '(weak t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-procedure)
   'procedure)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-procedure)
   '(procedure t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-foreign)
   'foreign)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-foreign)
   '(foreign t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-string)
   'string)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-string)
   '(string t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-s8vector)
   's8vector)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-s8vector)
   '(s8vector t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-u8vector)
   'u8vector)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-u8vector)
   '(u8vector t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-s16vector)
   's16vector)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-s16vector)
   '(s16vector t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-u16vector)
   'u16vector)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-u16vector)
   '(u16vector t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-s32vector)
   's32vector)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-s32vector)
   '(s32vector t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-u32vector)
   'u32vector)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-u32vector)
   '(u32vector t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-f32vector)
   'f32vector)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-f32vector)
   '(f32vector t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-s64vector)
   's64vector)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-s64vector)
   '(s64vector t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-u64vector)
   'u64vector)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-u64vector)
   '(u64vector t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-f64vector)
   'f64vector)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-f64vector)
   '(f64vector t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-flonum)
   'flonum)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-flonum)
   '(flonum real number t))
  (vector-set!
   std/generic/dispatch#+subtype-id+
   (macro-subtype-bignum)
   'bignum)
  (vector-set!
   std/generic/dispatch#+subtype-linear+
   (macro-subtype-bignum)
   '(bignum integer real number t))
  (define std/generic/dispatch#generic::t
    (make-struct-type
     'std/generic/dispatch#generic::t
     '#f
     '4
     'generic
     '((final: . #t))
     ':init!
     '(id tabs default mx)))
  (define std/generic/dispatch#generic?
    (make-struct-predicate std/generic/dispatch#generic::t))
  (define std/generic/dispatch#make-generic
    (lambda _$args2708_
      (apply make-struct-instance
             std/generic/dispatch#generic::t
             _$args2708_)))
  (define std/generic/dispatch#generic-id
    (make-struct-field-accessor std/generic/dispatch#generic::t '0))
  (define std/generic/dispatch#generic-tabs
    (make-struct-field-accessor std/generic/dispatch#generic::t '1))
  (define std/generic/dispatch#generic-default
    (make-struct-field-accessor std/generic/dispatch#generic::t '2))
  (define std/generic/dispatch#generic-mx
    (make-struct-field-accessor std/generic/dispatch#generic::t '3))
  (define std/generic/dispatch#generic-id-set!
    (make-struct-field-mutator std/generic/dispatch#generic::t '0))
  (define std/generic/dispatch#generic-tabs-set!
    (make-struct-field-mutator std/generic/dispatch#generic::t '1))
  (define std/generic/dispatch#generic-default-set!
    (make-struct-field-mutator std/generic/dispatch#generic::t '2))
  (define std/generic/dispatch#generic-mx-set!
    (make-struct-field-mutator std/generic/dispatch#generic::t '3))
  (define std/generic/dispatch#&generic-id
    (make-struct-field-unchecked-accessor std/generic/dispatch#generic::t '0))
  (define std/generic/dispatch#&generic-tabs
    (make-struct-field-unchecked-accessor std/generic/dispatch#generic::t '1))
  (define std/generic/dispatch#&generic-default
    (make-struct-field-unchecked-accessor std/generic/dispatch#generic::t '2))
  (define std/generic/dispatch#&generic-mx
    (make-struct-field-unchecked-accessor std/generic/dispatch#generic::t '3))
  (define std/generic/dispatch#&generic-id-set!
    (make-struct-field-unchecked-mutator std/generic/dispatch#generic::t '0))
  (define std/generic/dispatch#&generic-tabs-set!
    (make-struct-field-unchecked-mutator std/generic/dispatch#generic::t '1))
  (define std/generic/dispatch#&generic-default-set!
    (make-struct-field-unchecked-mutator std/generic/dispatch#generic::t '2))
  (define std/generic/dispatch#&generic-mx-set!
    (make-struct-field-unchecked-mutator std/generic/dispatch#generic::t '3))
  (define std/generic/dispatch#generic:::init!__%
    (lambda (_self2689_ _id2690_ _default2691_)
      (if (or (not _default2691_) (procedure? _default2691_))
          '#!void
          (error '"Bad default method; expected procedure or #f"
                 _id2690_
                 _default2691_))
      (if (##fx< '4 (##vector-length _self2689_))
          (begin
            (##vector-set! _self2689_ '1 _id2690_)
            (##vector-set! _self2689_ '2 (vector))
            (##vector-set! _self2689_ '3 _default2691_)
            (##vector-set! _self2689_ '4 (make-mutex 'generic)))
          (error '"struct-instance-init!: too many arguments for struct"
                 _self2689_))))
  (define std/generic/dispatch#generic:::init!__0
    (lambda (_self2699_ _id2700_)
      (let ((_default2702_ '#f))
        (std/generic/dispatch#generic:::init!__%
         _self2699_
         _id2700_
         _default2702_))))
  (define std/generic/dispatch#generic:::init!
    (lambda _g6463_
      (let ((_g6462_ (##length _g6463_)))
        (cond ((##fx= _g6462_ 2)
               (apply std/generic/dispatch#generic:::init!__0 _g6463_))
              ((##fx= _g6462_ 3)
               (apply std/generic/dispatch#generic:::init!__% _g6463_))
              (else
               (##raise-wrong-number-of-arguments-exception
                std/generic/dispatch#generic:::init!
                _g6463_))))))
  (bind-method!
   std/generic/dispatch#generic::t
   ':init!
   std/generic/dispatch#generic:::init!
   '#f)
  (define std/generic/dispatch#generic-table::t
    (make-struct-type
     'std/generic/dispatch#generic-table::t
     '#f
     '3
     'generic-table
     '((final: . #t))
     ':init!
     '(methods cache mx)))
  (define std/generic/dispatch#generic-table?
    (make-struct-predicate std/generic/dispatch#generic-table::t))
  (define std/generic/dispatch#make-generic-table
    (lambda _$args2563_
      (apply make-struct-instance
             std/generic/dispatch#generic-table::t
             _$args2563_)))
  (define std/generic/dispatch#generic-table-methods
    (make-struct-field-accessor std/generic/dispatch#generic-table::t '0))
  (define std/generic/dispatch#generic-table-cache
    (make-struct-field-accessor std/generic/dispatch#generic-table::t '1))
  (define std/generic/dispatch#generic-table-mx
    (make-struct-field-accessor std/generic/dispatch#generic-table::t '2))
  (define std/generic/dispatch#generic-table-methods-set!
    (make-struct-field-mutator std/generic/dispatch#generic-table::t '0))
  (define std/generic/dispatch#generic-table-cache-set!
    (make-struct-field-mutator std/generic/dispatch#generic-table::t '1))
  (define std/generic/dispatch#generic-table-mx-set!
    (make-struct-field-mutator std/generic/dispatch#generic-table::t '2))
  (define std/generic/dispatch#&generic-table-methods
    (make-struct-field-unchecked-accessor
     std/generic/dispatch#generic-table::t
     '0))
  (define std/generic/dispatch#&generic-table-cache
    (make-struct-field-unchecked-accessor
     std/generic/dispatch#generic-table::t
     '1))
  (define std/generic/dispatch#&generic-table-mx
    (make-struct-field-unchecked-accessor
     std/generic/dispatch#generic-table::t
     '2))
  (define std/generic/dispatch#&generic-table-methods-set!
    (make-struct-field-unchecked-mutator
     std/generic/dispatch#generic-table::t
     '0))
  (define std/generic/dispatch#&generic-table-cache-set!
    (make-struct-field-unchecked-mutator
     std/generic/dispatch#generic-table::t
     '1))
  (define std/generic/dispatch#&generic-table-mx-set!
    (make-struct-field-unchecked-mutator
     std/generic/dispatch#generic-table::t
     '2))
  (define std/generic/dispatch#generic-table:::init!
    (lambda (_self2561_)
      (if (##fx< '3 (##vector-length _self2561_))
          (begin
            (##vector-set! _self2561_ '1 '())
            (##vector-set! _self2561_ '2 (make-vector '10 '#f))
            (##vector-set! _self2561_ '3 (make-mutex 'generic-table)))
          (error '"struct-instance-init!: too many arguments for struct"
                 _self2561_))))
  (bind-method!
   std/generic/dispatch#generic-table::t
   ':init!
   std/generic/dispatch#generic-table:::init!
   '#f)
  (define std/generic/dispatch#generic-bind!
    (lambda (_gen2420_ _signature2421_ _method2422_)
      (if (procedure? _method2422_)
          '#!void
          (error '"Bad method; expected procedure" _method2422_))
      (let ((_arity2424_ (length _signature2421_))
            (_mx2425_
             (##unchecked-structure-ref
              _gen2420_
              '4
              std/generic/dispatch#generic::t
              '#f)))
        (mutex-lock! _mx2425_)
        (let ((_tabs2427_
               (##unchecked-structure-ref
                _gen2420_
                '2
                std/generic/dispatch#generic::t
                '#f)))
          (if (##fx< _arity2424_ (##vector-length _tabs2427_))
              (let ((_$e2429_ (##vector-ref _tabs2427_ _arity2424_)))
                (if _$e2429_
                    ((lambda (_gtab2432_)
                       (std/generic/dispatch#generic-bind-method!
                        _gtab2432_
                        _signature2421_
                        _method2422_))
                     _$e2429_)
                    (let ((_gtab2434_
                           (let ((__obj6458
                                  (make-object
                                   std/generic/dispatch#generic-table::t
                                   '3)))
                             (std/generic/dispatch#generic-table:::init!
                              __obj6458)
                             __obj6458)))
                      (##vector-set! _tabs2427_ _arity2424_ _gtab2434_)
                      (std/generic/dispatch#generic-bind-method!
                       _gtab2434_
                       _signature2421_
                       _method2422_))))
              (let ((_new-tabs2436_ (make-vector (##fx+ _arity2424_ '1) '#f))
                    (_gtab2437_
                     (let ((__obj6459
                            (make-object
                             std/generic/dispatch#generic-table::t
                             '3)))
                       (std/generic/dispatch#generic-table:::init! __obj6459)
                       __obj6459)))
                (##subvector-move!
                 _tabs2427_
                 '0
                 (##vector-length _tabs2427_)
                 _new-tabs2436_
                 '0)
                (##vector-set! _new-tabs2436_ _arity2424_ _gtab2437_)
                (##unchecked-structure-set!
                 _gen2420_
                 _new-tabs2436_
                 '2
                 std/generic/dispatch#generic::t
                 '#f)
                (std/generic/dispatch#generic-bind-method!
                 _gtab2437_
                 _signature2421_
                 _method2422_))))
        (mutex-unlock! _mx2425_))))
  (define std/generic/dispatch#generic-bind-method!
    (lambda (_gtab2393_ _signature2394_ _method2395_)
      (letrec ((_invalidate?2397_
                (lambda (_cache2409_)
                  (let ((_cache-len2411_ (##vector-length _cache2409_)))
                    (let _lp2413_ ((_i2415_ '0))
                      (if (##fx< _i2415_ _cache-len2411_)
                          (let ((_$e2417_ (##vector-ref _cache2409_ _i2415_)))
                            (if _$e2417_
                                _$e2417_
                                (_lp2413_ (##fx+ _i2415_ '1))))
                          '#f))))))
        (let _again2399_ ()
          (let* ((_old-methods2402_
                  (##unchecked-structure-ref
                   _gtab2393_
                   '1
                   std/generic/dispatch#generic-table::t
                   '#f))
                 (_new-methods2404_
                  (std/generic/dispatch#generic-add-method
                   _old-methods2402_
                   _signature2394_
                   _method2395_)))
            (let ((_mx2407_
                   (##unchecked-structure-ref
                    _gtab2393_
                    '3
                    std/generic/dispatch#generic-table::t
                    '#f)))
              (mutex-lock! _mx2407_)
              (if (eq? _old-methods2402_
                       (##unchecked-structure-ref
                        _gtab2393_
                        '1
                        std/generic/dispatch#generic-table::t
                        '#f))
                  (begin
                    (##unchecked-structure-set!
                     _gtab2393_
                     _new-methods2404_
                     '1
                     std/generic/dispatch#generic-table::t
                     '#f)
                    (if (_invalidate?2397_
                         (##unchecked-structure-ref
                          _gtab2393_
                          '2
                          std/generic/dispatch#generic-table::t
                          '#f))
                        (##unchecked-structure-set!
                         _gtab2393_
                         (make-vector
                          (##vector-length
                           (##unchecked-structure-ref
                            _gtab2393_
                            '2
                            std/generic/dispatch#generic-table::t
                            '#f))
                          '#f)
                         '2
                         std/generic/dispatch#generic-table::t
                         '#f)
                        '#!void)
                    (mutex-unlock! _mx2407_))
                  (begin (mutex-unlock! _mx2407_) (_again2399_)))))))))
  (define std/generic/dispatch#generic-add-method
    (lambda (_methods2324_ _signature2325_ _method2326_)
      (let _recur2328_ ((_rest2330_ _methods2324_))
        (let* ((_rest23312339_ _rest2330_)
               (_else23332347_
                (lambda () (cons (cons _signature2325_ _method2326_) '())))
               (_K23352381_
                (lambda (_rest2350_ _hd2351_)
                  (let* ((_hd23522359_ _hd2351_)
                         (_E23542363_
                          (lambda ()
                            (error '"No clause matching" _hd23522359_)))
                         (_K23552369_
                          (lambda (_hd-method2366_ _hd-signature2367_)
                            (if (std/generic/dispatch#generic-dispatch-before?
                                 _signature2325_
                                 _hd-signature2367_)
                                (cons (cons _signature2325_ _method2326_)
                                      (cons _hd2351_ _rest2350_))
                                (if (equal? _signature2325_ _hd-signature2367_)
                                    (cons (cons _signature2325_ _method2326_)
                                          _rest2350_)
                                    (cons _hd2351_
                                          (_recur2328_ _rest2350_)))))))
                    (if (##pair? _hd23522359_)
                        (let ((_hd23562372_ (##car _hd23522359_))
                              (_tl23572374_ (##cdr _hd23522359_)))
                          (let* ((_hd-signature2377_ _hd23562372_)
                                 (_hd-method2379_ _tl23572374_))
                            (_K23552369_ _hd-method2379_ _hd-signature2377_)))
                        (_E23542363_))))))
          (if (##pair? _rest23312339_)
              (let ((_hd23362384_ (##car _rest23312339_))
                    (_tl23372386_ (##cdr _rest23312339_)))
                (let* ((_hd2389_ _hd23362384_) (_rest2391_ _tl23372386_))
                  (_K23352381_ _rest2391_ _hd2389_)))
              (_else23332347_))))))
  (define std/generic/dispatch#generic-dispatch-before?
    (lambda (_sig-a2252_ _sig-b2253_)
      (let _lp2255_ ((_rest-a2257_ _sig-a2252_) (_rest-b2258_ _sig-b2253_))
        (let* ((_rest-a22592267_ _rest-a2257_)
               (_else22612275_ (lambda () '#f))
               (_K22632312_
                (lambda (_rest-a2278_ _type-a2279_)
                  (let* ((_rest-b22802287_ _rest-b2258_)
                         (_E22822291_
                          (lambda ()
                            (error '"No clause matching" _rest-b22802287_)))
                         (_K22832300_
                          (lambda (_rest-b2294_ _type-b2295_)
                            (if (not (std/generic/dispatch#generic-dispatch-type<?
                                      _type-b2295_
                                      _type-a2279_))
                                (let ((_$e2297_
                                       (std/generic/dispatch#generic-dispatch-type<?
                                        _type-a2279_
                                        _type-b2295_)))
                                  (if _$e2297_
                                      _$e2297_
                                      (_lp2255_ _rest-a2278_ _rest-b2294_)))
                                '#f))))
                    (if (##pair? _rest-b22802287_)
                        (let ((_hd22842303_ (##car _rest-b22802287_))
                              (_tl22852305_ (##cdr _rest-b22802287_)))
                          (let* ((_type-b2308_ _hd22842303_)
                                 (_rest-b2310_ _tl22852305_))
                            (_K22832300_ _rest-b2310_ _type-b2308_)))
                        (_E22822291_))))))
          (if (##pair? _rest-a22592267_)
              (let ((_hd22642315_ (##car _rest-a22592267_))
                    (_tl22652317_ (##cdr _rest-a22592267_)))
                (let* ((_type-a2320_ _hd22642315_) (_rest-a2322_ _tl22652317_))
                  (_K22632312_ _rest-a2322_ _type-a2320_)))
              (_else22612275_))))))
  (define std/generic/dispatch#generic-dispatch-type<?
    (lambda (_type-a2249_ _type-b2250_)
      (memq (car _type-b2250_) _type-a2249_)))
  (define std/generic/dispatch#generic-dispatch
    (lambda (_gen2228_ . _args2229_)
      (let ((_arity2231_ (##length _args2229_))
            (_tabs2232_
             (##unchecked-structure-ref
              _gen2228_
              '2
              std/generic/dispatch#generic::t
              '#f)))
        (let ((_$e2234_
               (if (##fx< _arity2231_ (##vector-length _tabs2232_))
                   (##vector-ref _tabs2232_ _arity2231_)
                   '#f)))
          (if _$e2234_
              ((lambda (_gtab2237_)
                 (let ((_$e2239_
                        (std/generic/dispatch#generic-dispatch-method
                         _gtab2237_
                         _args2229_
                         (##unchecked-structure-ref
                          _gen2228_
                          '3
                          std/generic/dispatch#generic::t
                          '#f))))
                   (if _$e2239_
                       ((lambda (_method2242_) (apply _method2242_ _args2229_))
                        _$e2239_)
                       (error '"No method matching arguments"
                              (##direct-structure-ref
                               _gen2228_
                               '1
                               std/generic/dispatch#generic::t
                               '#f)
                              _args2229_))))
               _$e2234_)
              (let ((_$e2244_
                     (##unchecked-structure-ref
                      _gen2228_
                      '3
                      std/generic/dispatch#generic::t
                      '#f)))
                (if _$e2244_
                    ((lambda (_method2247_) (apply _method2247_ _args2229_))
                     _$e2244_)
                    (error '"No method matching arguments"
                           (##direct-structure-ref
                            _gen2228_
                            '1
                            std/generic/dispatch#generic::t
                            '#f)
                           _args2229_))))))))
  (define std/generic/dispatch#generic-dispatch-method
    (lambda (_gtab2221_ _args2222_ _default2223_)
      (let ((_$e2225_
             (std/generic/dispatch#generic-dispatch-cache-lookup
              (##unchecked-structure-ref
               _gtab2221_
               '2
               std/generic/dispatch#generic-table::t
               '#f)
              _args2222_)))
        (if _$e2225_
            _$e2225_
            (std/generic/dispatch#generic-dispatch-method-ref
             _gtab2221_
             _args2222_
             _default2223_)))))
  (define std/generic/dispatch#generic-dispatch-method-ref
    (lambda (_gtab2207_ _args2208_ _default2209_)
      (let* ((_methods2211_
              (##unchecked-structure-ref
               _gtab2207_
               '1
               std/generic/dispatch#generic-table::t
               '#f))
             (_method2216_
              (let ((_$e2213_
                     (std/generic/dispatch#generic-dispatch-find-method
                      _methods2211_
                      _args2208_)))
                (if _$e2213_ _$e2213_ _default2209_))))
        (if _method2216_
            (let ((_mx2219_
                   (##unchecked-structure-ref
                    _gtab2207_
                    '3
                    std/generic/dispatch#generic-table::t
                    '#f)))
              (mutex-lock! _mx2219_)
              (if (eq? _methods2211_
                       (##unchecked-structure-ref
                        _gtab2207_
                        '1
                        std/generic/dispatch#generic-table::t
                        '#f))
                  (if (std/generic/dispatch#generic-dispatch-cache-lookup
                       (##unchecked-structure-ref
                        _gtab2207_
                        '2
                        std/generic/dispatch#generic-table::t
                        '#f)
                       _args2208_)
                      '#!void
                      (std/generic/dispatch#generic-dispatch-cache!
                       _gtab2207_
                       _args2208_
                       _method2216_))
                  '#!void)
              (mutex-unlock! _mx2219_))
            '#!void)
        _method2216_)))
  (define std/generic/dispatch#generic-dispatch1
    (lambda (_gen2184_ _arg12186_)
      (let* ((_tabs2188_
              (##unchecked-structure-ref
               _gen2184_
               '2
               std/generic/dispatch#generic::t
               '#f))
             (_$e2191_
              (if (##fx< '1 (##vector-length _tabs2188_))
                  (##vector-ref _tabs2188_ '1)
                  '#f)))
        (if _$e2191_
            ((lambda (_gtab2194_)
               (let ((_$e2196_
                      (std/generic/dispatch#generic-dispatch-method1
                       _gtab2194_
                       (##unchecked-structure-ref
                        _gen2184_
                        '3
                        std/generic/dispatch#generic::t
                        '#f)
                       _arg12186_)))
                 (if _$e2196_
                     ((lambda (_method2199_) (_method2199_ _arg12186_))
                      _$e2196_)
                     (error '"No method matching arguments"
                            (##direct-structure-ref
                             _gen2184_
                             '1
                             std/generic/dispatch#generic::t
                             '#f)
                            (cons _arg12186_ '())))))
             _$e2191_)
            (let ((_$e2202_
                   (##unchecked-structure-ref
                    _gen2184_
                    '3
                    std/generic/dispatch#generic::t
                    '#f)))
              (if _$e2202_
                  ((lambda (_method2205_) (_method2205_ _arg12186_)) _$e2202_)
                  (error '"No method matching arguments"
                         (##direct-structure-ref
                          _gen2184_
                          '1
                          std/generic/dispatch#generic::t
                          '#f)
                         (cons _arg12186_ '()))))))))
  (define std/generic/dispatch#generic-dispatch-method1
    (lambda (_gtab2175_ _default2177_ _arg12179_)
      (let ((_$e2181_
             (std/generic/dispatch#generic-dispatch-cache-lookup1
              (##unchecked-structure-ref
               _gtab2175_
               '2
               std/generic/dispatch#generic-table::t
               '#f)
              _arg12179_)))
        (if _$e2181_
            _$e2181_
            (std/generic/dispatch#generic-dispatch-method-ref
             _gtab2175_
             (cons _arg12179_ '())
             _default2177_)))))
  (define std/generic/dispatch#generic-dispatch2
    (lambda (_gen2151_ _arg12153_ _arg22154_)
      (let* ((_tabs2156_
              (##unchecked-structure-ref
               _gen2151_
               '2
               std/generic/dispatch#generic::t
               '#f))
             (_$e2159_
              (if (##fx< '2 (##vector-length _tabs2156_))
                  (##vector-ref _tabs2156_ '2)
                  '#f)))
        (if _$e2159_
            ((lambda (_gtab2162_)
               (let ((_$e2164_
                      (std/generic/dispatch#generic-dispatch-method2
                       _gtab2162_
                       (##unchecked-structure-ref
                        _gen2151_
                        '3
                        std/generic/dispatch#generic::t
                        '#f)
                       _arg12153_
                       _arg22154_)))
                 (if _$e2164_
                     ((lambda (_method2167_)
                        (_method2167_ _arg12153_ _arg22154_))
                      _$e2164_)
                     (error '"No method matching arguments"
                            (##direct-structure-ref
                             _gen2151_
                             '1
                             std/generic/dispatch#generic::t
                             '#f)
                            (cons _arg12153_ (cons _arg22154_ '()))))))
             _$e2159_)
            (let ((_$e2170_
                   (##unchecked-structure-ref
                    _gen2151_
                    '3
                    std/generic/dispatch#generic::t
                    '#f)))
              (if _$e2170_
                  ((lambda (_method2173_) (_method2173_ _arg12153_ _arg22154_))
                   _$e2170_)
                  (error '"No method matching arguments"
                         (##direct-structure-ref
                          _gen2151_
                          '1
                          std/generic/dispatch#generic::t
                          '#f)
                         (cons _arg12153_ (cons _arg22154_ '())))))))))
  (define std/generic/dispatch#generic-dispatch-method2
    (lambda (_gtab2141_ _default2143_ _arg12145_ _arg22146_)
      (let ((_$e2148_
             (std/generic/dispatch#generic-dispatch-cache-lookup2
              (##unchecked-structure-ref
               _gtab2141_
               '2
               std/generic/dispatch#generic-table::t
               '#f)
              _arg12145_
              _arg22146_)))
        (if _$e2148_
            _$e2148_
            (std/generic/dispatch#generic-dispatch-method-ref
             _gtab2141_
             (cons _arg12145_ (cons _arg22146_ '()))
             _default2143_)))))
  (define std/generic/dispatch#generic-dispatch3
    (lambda (_gen2116_ _arg12118_ _arg22119_ _arg32120_)
      (let* ((_tabs2122_
              (##unchecked-structure-ref
               _gen2116_
               '2
               std/generic/dispatch#generic::t
               '#f))
             (_$e2125_
              (if (##fx< '3 (##vector-length _tabs2122_))
                  (##vector-ref _tabs2122_ '3)
                  '#f)))
        (if _$e2125_
            ((lambda (_gtab2128_)
               (let ((_$e2130_
                      (std/generic/dispatch#generic-dispatch-method3
                       _gtab2128_
                       (##unchecked-structure-ref
                        _gen2116_
                        '3
                        std/generic/dispatch#generic::t
                        '#f)
                       _arg12118_
                       _arg22119_
                       _arg32120_)))
                 (if _$e2130_
                     ((lambda (_method2133_)
                        (_method2133_ _arg12118_ _arg22119_ _arg32120_))
                      _$e2130_)
                     (error '"No method matching arguments"
                            (##direct-structure-ref
                             _gen2116_
                             '1
                             std/generic/dispatch#generic::t
                             '#f)
                            (cons _arg12118_
                                  (cons _arg22119_ (cons _arg32120_ '())))))))
             _$e2125_)
            (let ((_$e2136_
                   (##unchecked-structure-ref
                    _gen2116_
                    '3
                    std/generic/dispatch#generic::t
                    '#f)))
              (if _$e2136_
                  ((lambda (_method2139_)
                     (_method2139_ _arg12118_ _arg22119_ _arg32120_))
                   _$e2136_)
                  (error '"No method matching arguments"
                         (##direct-structure-ref
                          _gen2116_
                          '1
                          std/generic/dispatch#generic::t
                          '#f)
                         (cons _arg12118_
                               (cons _arg22119_ (cons _arg32120_ '()))))))))))
  (define std/generic/dispatch#generic-dispatch-method3
    (lambda (_gtab2105_ _default2107_ _arg12109_ _arg22110_ _arg32111_)
      (let ((_$e2113_
             (std/generic/dispatch#generic-dispatch-cache-lookup3
              (##unchecked-structure-ref
               _gtab2105_
               '2
               std/generic/dispatch#generic-table::t
               '#f)
              _arg12109_
              _arg22110_
              _arg32111_)))
        (if _$e2113_
            _$e2113_
            (std/generic/dispatch#generic-dispatch-method-ref
             _gtab2105_
             (cons _arg12109_ (cons _arg22110_ (cons _arg32111_ '())))
             _default2107_)))))
  (define std/generic/dispatch#generic-dispatch4
    (lambda (_gen2079_ _arg12081_ _arg22082_ _arg32083_ _arg42084_)
      (let* ((_tabs2086_
              (##unchecked-structure-ref
               _gen2079_
               '2
               std/generic/dispatch#generic::t
               '#f))
             (_$e2089_
              (if (##fx< '4 (##vector-length _tabs2086_))
                  (##vector-ref _tabs2086_ '4)
                  '#f)))
        (if _$e2089_
            ((lambda (_gtab2092_)
               (let ((_$e2094_
                      (std/generic/dispatch#generic-dispatch-method4
                       _gtab2092_
                       (##unchecked-structure-ref
                        _gen2079_
                        '3
                        std/generic/dispatch#generic::t
                        '#f)
                       _arg12081_
                       _arg22082_
                       _arg32083_
                       _arg42084_)))
                 (if _$e2094_
                     ((lambda (_method2097_)
                        (_method2097_
                         _arg12081_
                         _arg22082_
                         _arg32083_
                         _arg42084_))
                      _$e2094_)
                     (error '"No method matching arguments"
                            (##direct-structure-ref
                             _gen2079_
                             '1
                             std/generic/dispatch#generic::t
                             '#f)
                            (cons _arg12081_
                                  (cons _arg22082_
                                        (cons _arg32083_
                                              (cons _arg42084_ '()))))))))
             _$e2089_)
            (let ((_$e2100_
                   (##unchecked-structure-ref
                    _gen2079_
                    '3
                    std/generic/dispatch#generic::t
                    '#f)))
              (if _$e2100_
                  ((lambda (_method2103_)
                     (_method2103_
                      _arg12081_
                      _arg22082_
                      _arg32083_
                      _arg42084_))
                   _$e2100_)
                  (error '"No method matching arguments"
                         (##direct-structure-ref
                          _gen2079_
                          '1
                          std/generic/dispatch#generic::t
                          '#f)
                         (cons _arg12081_
                               (cons _arg22082_
                                     (cons _arg32083_
                                           (cons _arg42084_ '())))))))))))
  (define std/generic/dispatch#generic-dispatch-method4
    (lambda (_gtab2067_
             _default2069_
             _arg12071_
             _arg22072_
             _arg32073_
             _arg42074_)
      (let ((_$e2076_
             (std/generic/dispatch#generic-dispatch-cache-lookup4
              (##unchecked-structure-ref
               _gtab2067_
               '2
               std/generic/dispatch#generic-table::t
               '#f)
              _arg12071_
              _arg22072_
              _arg32073_
              _arg42074_)))
        (if _$e2076_
            _$e2076_
            (std/generic/dispatch#generic-dispatch-method-ref
             _gtab2067_
             (cons _arg12071_
                   (cons _arg22072_ (cons _arg32073_ (cons _arg42074_ '()))))
             _default2069_)))))
  (define std/generic/dispatch#generic-dispatch-find-method
    (lambda (_methods1997_ _args1998_)
      (let ((_arg-types2000_
             (map std/generic/dispatch#linear-type-of _args1998_)))
        (let _lp2002_ ((_rest2004_ _methods1997_))
          (let* ((_rest20052013_ _rest2004_)
                 (_else20072021_ (lambda () '#f))
                 (_K20092055_
                  (lambda (_rest2024_ _hd2025_)
                    (let* ((_hd20262033_ _hd2025_)
                           (_E20282037_
                            (lambda ()
                              (error '"No clause matching" _hd20262033_)))
                           (_K20292043_
                            (lambda (_method2040_ _signature2041_)
                              (if (std/generic/dispatch#generic-dispatch-match?
                                   _arg-types2000_
                                   _signature2041_)
                                  _method2040_
                                  (_lp2002_ _rest2024_)))))
                      (if (##pair? _hd20262033_)
                          (let ((_hd20302046_ (##car _hd20262033_))
                                (_tl20312048_ (##cdr _hd20262033_)))
                            (let* ((_signature2051_ _hd20302046_)
                                   (_method2053_ _tl20312048_))
                              (_K20292043_ _method2053_ _signature2051_)))
                          (_E20282037_))))))
            (if (##pair? _rest20052013_)
                (let ((_hd20102058_ (##car _rest20052013_))
                      (_tl20112060_ (##cdr _rest20052013_)))
                  (let* ((_hd2063_ _hd20102058_) (_rest2065_ _tl20112060_))
                    (_K20092055_ _rest2065_ _hd2063_)))
                (_else20072021_)))))))
  (define std/generic/dispatch#generic-dispatch-match?
    (lambda (_arg-types1928_ _signature1929_)
      (let _lp1931_ ((_rest-args1933_ _arg-types1928_)
                     (_rest-sign1934_ _signature1929_))
        (let* ((_rest-args19351943_ _rest-args1933_)
               (_else19371951_ (lambda () '#t))
               (_K19391985_
                (lambda (_rest-args1954_ _arg-tids1955_)
                  (let* ((_rest-sign19561963_ _rest-sign1934_)
                         (_E19581967_
                          (lambda ()
                            (error '"No clause matching" _rest-sign19561963_)))
                         (_K19591973_
                          (lambda (_rest-sign1970_ _sign-tids1971_)
                            (if (memq (car _sign-tids1971_) _arg-tids1955_)
                                (_lp1931_ _rest-args1954_ _rest-sign1970_)
                                '#f))))
                    (if (##pair? _rest-sign19561963_)
                        (let ((_hd19601976_ (##car _rest-sign19561963_))
                              (_tl19611978_ (##cdr _rest-sign19561963_)))
                          (let* ((_sign-tids1981_ _hd19601976_)
                                 (_rest-sign1983_ _tl19611978_))
                            (_K19591973_ _rest-sign1983_ _sign-tids1981_)))
                        (_E19581967_))))))
          (if (##pair? _rest-args19351943_)
              (let ((_hd19401988_ (##car _rest-args19351943_))
                    (_tl19411990_ (##cdr _rest-args19351943_)))
                (let* ((_arg-tids1993_ _hd19401988_)
                       (_rest-args1995_ _tl19411990_))
                  (_K19391985_ _rest-args1995_ _arg-tids1993_)))
              (_else19371951_))))))
  (define std/generic/dispatch#generic-dispatch-next
    (lambda (_gen1852_ _method1853_ . _args1854_)
      (letrec ((_drop1856_
                (lambda (_method1878_ _methods1879_)
                  (let _lp1881_ ((_rest1883_ _methods1879_))
                    (let* ((_rest18841894_ _rest1883_)
                           (_else18861902_ (lambda () '()))
                           (_K18881909_
                            (lambda (_rest1905_ _proc1906_ _signature1907_)
                              (if (eq? _method1878_ _proc1906_)
                                  _rest1905_
                                  (_lp1881_ _rest1905_)))))
                      (if (##pair? _rest18841894_)
                          (let ((_hd18891912_ (##car _rest18841894_))
                                (_tl18901914_ (##cdr _rest18841894_)))
                            (if (##pair? _hd18891912_)
                                (let ((_hd18911917_ (##car _hd18891912_))
                                      (_tl18921919_ (##cdr _hd18891912_)))
                                  (let* ((_signature1922_ _hd18911917_)
                                         (_proc1924_ _tl18921919_)
                                         (_rest1926_ _tl18901914_))
                                    (_K18881909_
                                     _rest1926_
                                     _proc1924_
                                     _signature1922_)))
                                (_else18861902_)))
                          (_else18861902_)))))))
        (let ((_arity1858_ (##length _args1854_))
              (_tabs1859_
               (##unchecked-structure-ref
                _gen1852_
                '2
                std/generic/dispatch#generic::t
                '#f)))
          (let ((_$e1861_
                 (if (##fx< _arity1858_ (##vector-length _tabs1859_))
                     (##vector-ref _tabs1859_ _arity1858_)
                     '#f)))
            (if _$e1861_
                ((lambda (_gtab1864_)
                   (let* ((_methods1866_
                           (_drop1856_
                            _method1853_
                            (##unchecked-structure-ref
                             _gtab1864_
                             '1
                             std/generic/dispatch#generic-table::t
                             '#f)))
                          (_$e1868_
                           (std/generic/dispatch#generic-dispatch-find-method
                            _methods1866_
                            _args1854_)))
                     (if _$e1868_
                         ((lambda (_method1871_)
                            (apply _method1871_ _args1854_))
                          _$e1868_)
                         (let ((_$e1873_
                                (##unchecked-structure-ref
                                 _gen1852_
                                 '3
                                 std/generic/dispatch#generic::t
                                 '#f)))
                           (if _$e1873_
                               ((lambda (_method1876_)
                                  (apply _method1876_ _args1854_))
                                _$e1873_)
                               (error '"No next method matching arguments"
                                      (##direct-structure-ref
                                       _gen1852_
                                       '1
                                       std/generic/dispatch#generic::t
                                       '#f)
                                      _args1854_))))))
                 _$e1861_)
                (error '"Cannot dispatch next method; no dispatch table"
                       (##direct-structure-ref
                        _gen1852_
                        '1
                        std/generic/dispatch#generic::t
                        '#f)
                       _args1854_)))))))
  (define std/generic/dispatch#generic-dispatch-cache-lookup
    (lambda (_cache1765_ _args1766_)
      (declare (not interrupts-enabled))
      (letrec ((_lookup1768_
                (lambda (_hash1772_ _shift1773_ _rest1774_)
                  (let* ((_rest17751783_ _rest1774_)
                         (_else17771796_
                          (lambda ()
                            (let* ((_len1791_ (##vector-length _cache1765_))
                                   (_ix1793_
                                    (##fxmodulo _hash1772_ _len1791_)))
                              (##vector-ref _cache1765_ _ix1793_))))
                         (_K17791840_
                          (lambda (_rest1799_ _arg1800_)
                            (let* ((_tid1802_
                                    (std/generic/dispatch#type-of _arg1800_))
                                   (_hash1804_
                                    (##fxxor _hash1772_
                                             (##fxarithmetic-shift
                                              (##symbol-hash _tid1802_)
                                              _shift1773_))))
                              (let* ((_g18061814_
                                      (_lookup1768_
                                       _hash1804_
                                       (##fx+ _shift1773_ '1)
                                       _rest1799_))
                                     (_else18081822_ (lambda () '#f))
                                     (_K18101828_
                                      (lambda (_xrest1825_ _xtid1826_)
                                        (if (##eq? _tid1802_ _xtid1826_)
                                            _xrest1825_
                                            '#f))))
                                (if (##pair? _g18061814_)
                                    (let ((_hd18111831_ (##car _g18061814_))
                                          (_tl18121833_ (##cdr _g18061814_)))
                                      (let* ((_xtid1836_ _hd18111831_)
                                             (_xrest1838_ _tl18121833_))
                                        (_K18101828_ _xrest1838_ _xtid1836_)))
                                    (_else18081822_)))))))
                    (if (##pair? _rest17751783_)
                        (let ((_hd17801843_ (##car _rest17751783_))
                              (_tl17811845_ (##cdr _rest17751783_)))
                          (let* ((_arg1848_ _hd17801843_)
                                 (_rest1850_ _tl17811845_))
                            (_K17791840_ _rest1850_ _arg1848_)))
                        (_else17771796_))))))
        (let ((_proc1770_ (_lookup1768_ '0 '0 _args1766_)))
          (if (##procedure? _proc1770_) _proc1770_ '#f)))))
  (define std/generic/dispatch#cache-hash1
    (lambda (_cache1713_ _mix1714_ _shift1715_ _arg1716_)
      (declare (not interrupts-enabled))
      (let* ((_tid1719_ (std/generic/dispatch#type-of _arg1716_))
             (_hash1721_
              (##fxxor _mix1714_
                       (##fxarithmetic-shift
                        (##symbol-hash _tid1719_)
                        _shift1715_)))
             (_len1723_ (##vector-length _cache1713_))
             (_ix1725_ (##fxmodulo _hash1721_ _len1723_))
             (_obj1727_ (##vector-ref _cache1713_ _ix1725_)))
        (let* ((_obj17291737_ _obj1727_)
               (_else17311745_ (lambda () '#f))
               (_K17331753_
                (lambda (_rest1748_ _xtid1750_)
                  (if (eq? _tid1719_ _xtid1750_) _rest1748_ '#f))))
          (if (##pair? _obj17291737_)
              (let ((_hd17341756_ (##car _obj17291737_))
                    (_tl17351758_ (##cdr _obj17291737_)))
                (let* ((_xtid1761_ _hd17341756_) (_rest1763_ _tl17351758_))
                  (_K17331753_ _rest1763_ _xtid1761_)))
              (_else17311745_))))))
  (define std/generic/dispatch#cache-hash2
    (lambda (_cache1658_ _mix1660_ _shift1662_ _arg11664_ _arg21665_)
      (declare (not interrupts-enabled))
      (let* ((_tid1668_ (std/generic/dispatch#type-of _arg11664_))
             (_hash1671_
              (##fxxor _mix1660_
                       (##fxarithmetic-shift
                        (##symbol-hash _tid1668_)
                        _shift1662_)))
             (_obj1674_
              (std/generic/dispatch#cache-hash1
               _cache1658_
               _hash1671_
               (fx+ _shift1662_ '1)
               _arg21665_)))
        (let* ((_obj16771685_ _obj1674_)
               (_else16791693_ (lambda () '#f))
               (_K16811701_
                (lambda (_rest1696_ _xtid1698_)
                  (if (eq? _tid1668_ _xtid1698_) _rest1696_ '#f))))
          (if (##pair? _obj16771685_)
              (let ((_hd16821704_ (##car _obj16771685_))
                    (_tl16831706_ (##cdr _obj16771685_)))
                (let* ((_xtid1709_ _hd16821704_) (_rest1711_ _tl16831706_))
                  (_K16811701_ _rest1711_ _xtid1709_)))
              (_else16791693_))))))
  (define std/generic/dispatch#cache-hash3
    (lambda (_cache1602_
             _mix1604_
             _shift1606_
             _arg11608_
             _arg21609_
             _arg31610_)
      (declare (not interrupts-enabled))
      (let* ((_tid1613_ (std/generic/dispatch#type-of _arg11608_))
             (_hash1616_
              (##fxxor _mix1604_
                       (##fxarithmetic-shift
                        (##symbol-hash _tid1613_)
                        _shift1606_)))
             (_obj1619_
              (std/generic/dispatch#cache-hash2
               _cache1602_
               _hash1616_
               (fx+ _shift1606_ '1)
               _arg21609_
               _arg31610_)))
        (let* ((_obj16221630_ _obj1619_)
               (_else16241638_ (lambda () '#f))
               (_K16261646_
                (lambda (_rest1641_ _xtid1643_)
                  (if (eq? _tid1613_ _xtid1643_) _rest1641_ '#f))))
          (if (##pair? _obj16221630_)
              (let ((_hd16271649_ (##car _obj16221630_))
                    (_tl16281651_ (##cdr _obj16221630_)))
                (let* ((_xtid1654_ _hd16271649_) (_rest1656_ _tl16281651_))
                  (_K16261646_ _rest1656_ _xtid1654_)))
              (_else16241638_))))))
  (define std/generic/dispatch#cache-hash4
    (lambda (_cache1545_
             _mix1547_
             _shift1549_
             _arg11551_
             _arg21552_
             _arg31553_
             _arg41554_)
      (declare (not interrupts-enabled))
      (let* ((_tid1557_ (std/generic/dispatch#type-of _arg11551_))
             (_hash1560_
              (##fxxor _mix1547_
                       (##fxarithmetic-shift
                        (##symbol-hash _tid1557_)
                        _shift1549_)))
             (_obj1563_
              (std/generic/dispatch#cache-hash3
               _cache1545_
               _hash1560_
               (fx+ _shift1549_ '1)
               _arg21552_
               _arg31553_
               _arg41554_)))
        (let* ((_obj15661574_ _obj1563_)
               (_else15681582_ (lambda () '#f))
               (_K15701590_
                (lambda (_rest1585_ _xtid1587_)
                  (if (eq? _tid1557_ _xtid1587_) _rest1585_ '#f))))
          (if (##pair? _obj15661574_)
              (let ((_hd15711593_ (##car _obj15661574_))
                    (_tl15721595_ (##cdr _obj15661574_)))
                (let* ((_xtid1598_ _hd15711593_) (_rest1600_ _tl15721595_))
                  (_K15701590_ _rest1600_ _xtid1598_)))
              (_else15681582_))))))
  (define std/generic/dispatch#generic-dispatch-cache-lookup1
    (lambda (_cache1537_ _arg11539_)
      (declare (not interrupts-enabled))
      (let ((_method1542_
             (std/generic/dispatch#cache-hash1 _cache1537_ '0 '0 _arg11539_)))
        (if (##procedure? _method1542_) _method1542_ '#f))))
  (define std/generic/dispatch#generic-dispatch-cache-lookup2
    (lambda (_cache1528_ _arg11530_ _arg21531_)
      (declare (not interrupts-enabled))
      (let ((_method1534_
             (std/generic/dispatch#cache-hash2
              _cache1528_
              '0
              '0
              _arg11530_
              _arg21531_)))
        (if (##procedure? _method1534_) _method1534_ '#f))))
  (define std/generic/dispatch#generic-dispatch-cache-lookup3
    (lambda (_cache1518_ _arg11520_ _arg21521_ _arg31522_)
      (declare (not interrupts-enabled))
      (let ((_method1525_
             (std/generic/dispatch#cache-hash3
              _cache1518_
              '0
              '0
              _arg11520_
              _arg21521_
              _arg31522_)))
        (if (##procedure? _method1525_) _method1525_ '#f))))
  (define std/generic/dispatch#generic-dispatch-cache-lookup4
    (lambda (_cache1507_ _arg11509_ _arg21510_ _arg31511_ _arg41512_)
      (declare (not interrupts-enabled))
      (let ((_method1515_
             (std/generic/dispatch#cache-hash4
              _cache1507_
              '0
              '0
              _arg11509_
              _arg21510_
              _arg31511_
              _arg41512_)))
        (if (##procedure? _method1515_) _method1515_ '#f))))
  (define std/generic/dispatch#generic-dispatch-cache!
    (lambda (_gtab1480_ _args1481_ _method1482_)
      (let* ((_arg-types1484_ (map std/generic/dispatch#type-of _args1481_))
             (_entry1486_ (foldl1 cons _method1482_ _arg-types1484_))
             (_hash1492_
              (foldl2 (lambda (_tid1488_ _shift1489_ _r1490_)
                        (##fxxor _r1490_
                                 (##fxarithmetic-shift
                                  (##symbol-hash _tid1488_)
                                  _shift1489_)))
                      '0
                      _arg-types1484_
                      (iota (length _args1481_)))))
        (let _lp1495_ ((_cache1497_
                        (##unchecked-structure-ref
                         _gtab1480_
                         '2
                         std/generic/dispatch#generic-table::t
                         '#f)))
          (let* ((_len1499_ (##vector-length _cache1497_))
                 (_ix1501_ (##fxmodulo _hash1492_ _len1499_)))
            (if (##vector-ref _cache1497_ _ix1501_)
                (let ((_$e1504_
                       (std/generic/dispatch#generic-dispatch-cache-rehash
                        _cache1497_)))
                  (if _$e1504_ (_lp1495_ _$e1504_) '#!void))
                (begin
                  (##vector-set! _cache1497_ _ix1501_ _entry1486_)
                  (##unchecked-structure-set!
                   _gtab1480_
                   _cache1497_
                   '2
                   std/generic/dispatch#generic-table::t
                   '#f))))))))
  (define std/generic/dispatch#generic-dispatch-cache-rehash
    (lambda (_cache1408_)
      (letrec* ((_cache-len1410_ (##vector-length _cache1408_))
                (_hash-entry1411_
                 (lambda (_entry1435_)
                   (let _lp1437_ ((_rest1439_ _entry1435_)
                                  (_count1440_ '0)
                                  (_r1441_ '()))
                     (let* ((_rest14421450_ _rest1439_)
                            (_else14441462_
                             (lambda ()
                               (foldl2 (lambda (_tid1458_ _shift1459_ _r1460_)
                                         (##fxxor _r1460_
                                                  (##fxarithmetic-shift
                                                   (##symbol-hash _tid1458_)
                                                   _shift1459_)))
                                       '0
                                       _r1441_
                                       (iota _count1440_))))
                            (_K14461468_
                             (lambda (_rest1465_ _tid1466_)
                               (_lp1437_
                                _rest1465_
                                (##fx+ _count1440_ '1)
                                (cons _tid1466_ _r1441_)))))
                       (if (##pair? _rest14421450_)
                           (let ((_hd14471471_ (##car _rest14421450_))
                                 (_tl14481473_ (##cdr _rest14421450_)))
                             (let* ((_tid1476_ _hd14471471_)
                                    (_rest1478_ _tl14481473_))
                               (_K14461468_ _rest1478_ _tid1476_)))
                           (_else14441462_))))))
                (_rehash!1412_
                 (lambda (_new-cache1420_)
                   (letrec* ((_new-cache-len1422_
                              (##vector-length _new-cache1420_)))
                     (let _lp1424_ ((_i1426_ '0))
                       (if (##fx< _i1426_ _cache-len1410_)
                           (let ((_entry1428_
                                  (##vector-ref _cache1408_ _i1426_)))
                             (if _entry1428_
                                 (let* ((_hash1430_
                                         (_hash-entry1411_ _entry1428_))
                                        (_ix1432_
                                         (##fxmodulo
                                          _hash1430_
                                          _new-cache-len1422_)))
                                   (if (##vector-ref _new-cache1420_ _ix1432_)
                                       '#f
                                       (begin
                                         (##vector-set!
                                          _new-cache1420_
                                          _ix1432_
                                          _entry1428_)
                                         (_lp1424_ (##fx+ _i1426_ '1)))))
                                 (_lp1424_ (##fx+ _i1426_ '1))))
                           '#t))))))
        (let _retry1414_ ((_new-cache-len1416_
                           (##fxquotient (##fx* '3 _cache-len1410_) '2)))
          (if (##fx< _new-cache-len1416_ std/generic/dispatch#+max-cache-size+)
              (let ((_new-cache1418_ (make-vector _new-cache-len1416_ '#f)))
                (if (_rehash!1412_ _new-cache1418_)
                    _new-cache1418_
                    (_retry1414_
                     (##fxquotient (##fx* '3 _new-cache-len1416_) '2))))
              (begin
                (display '"*** Warning: cannot rehash generic cache; maximum cache size exceeded\n"
                         ##stderr-port)
                '#f))))))
  (define std/generic/dispatch#+max-cache-size+ (expt '2 '16)))
