(declare (block) (standard-bindings) (extended-bindings))
(begin
  (define std/srfi/146/hash#tree-search
    (lambda (_comparator1355_ _tree1356_ _obj1357_ _failure1358_ _success1359_)
      (let ((_entry1361_
             (std/srfi/146/hamt-map#phm/get__0 _tree1356_ _obj1357_)))
        (if _entry1361_
            (_success1359_
             (car _entry1361_)
             (cdr _entry1361_)
             (lambda (_new-key1363_ _new-datum1364_ _ret1365_)
               (let ((_tree1367_
                      (std/srfi/146/hamt-map#phm/remove _tree1356_ _obj1357_)))
                 (values (std/srfi/146/hamt-map#phm/put
                          _tree1367_
                          _new-key1363_
                          (cons _new-key1363_ _new-datum1364_))
                         _ret1365_)))
             (lambda (_ret1369_)
               (values (std/srfi/146/hamt-map#phm/remove _tree1356_ _obj1357_)
                       _ret1369_)))
            (_failure1358_
             (lambda (_new-key1371_ _new-datum1372_ _ret1373_)
               (values (std/srfi/146/hamt-map#phm/put
                        _tree1356_
                        _new-key1371_
                        (cons _new-key1371_ _new-datum1372_))
                       _ret1373_))
             (lambda (_ret1375_) (values _tree1356_ _ret1375_)))))))
  (define std/srfi/146/hash#tree-fold
    (lambda (_proc1348_ _seed1349_ _tree1350_)
      (std/srfi/146/hamt-map#phm/for-each
       (lambda (_key1352_ _entry1353_)
         (set! _seed1349_
               (_proc1348_ (car _entry1353_) (cdr _entry1353_) _seed1349_)))
       _tree1350_)
      _seed1349_))
  (define std/srfi/146/hash#tree-for-each
    (lambda (_proc1342_ _tree1343_)
      (std/srfi/146/hamt-map#phm/for-each
       (lambda (_key1345_ _entry1346_)
         (_proc1342_ (car _entry1346_) (cdr _entry1346_)))
       _tree1343_)))
  (define std/srfi/146/hash#tree-generator
    (lambda (_tree1336_)
      (std/srfi/121#make-coroutine-generator
       (lambda (_yield1338_)
         (std/srfi/146/hash#tree-for-each
          (lambda _item1340_ (_yield1338_ _item1340_))
          _tree1336_)))))
  (define std/srfi/146/hash#<hashmap>
    (make-struct-type
     'std/srfi/146/hash#<hashmap>
     '#f
     '2
     '<hashmap>
     '((fields: comparator tree))
     '#f))
  (define std/srfi/146/hash#hashmap?
    (make-struct-predicate std/srfi/146/hash#<hashmap>))
  (define std/srfi/146/hash#hashmap-key-comparator
    (make-struct-field-accessor std/srfi/146/hash#<hashmap> '0))
  (define std/srfi/146/hash#hashmap-tree
    (make-struct-field-accessor std/srfi/146/hash#<hashmap> '1))
  (define std/srfi/146/hash#%make-hashmap
    (lambda (_comparator1333_ _tree1334_)
      (make-struct-instance
       std/srfi/146/hash#<hashmap>
       _comparator1333_
       _tree1334_)))
  (define std/srfi/146/hash#make-empty-hashmap
    (lambda (_comparator1328_)
      (let ((_val1330_
             (let ()
               (declare (not safe))
               (##structure-direct-instance-of?
                _comparator1328_
                'std/srfi/128#comparator::t))))
        (if _val1330_ _val1330_ (error)))
      (let ((__tmp4975
             (std/srfi/146/hamt-map#make-phm__0
              (std/srfi/128#comparator-hash-function _comparator1328_)
              (##direct-structure-ref
               _comparator1328_
               '2
               std/srfi/128#comparator::t
               '#f))))
        (declare (not safe))
        (##structure std/srfi/146/hash#<hashmap> _comparator1328_ __tmp4975))))
  (define std/srfi/146/hash#hashmap
    (lambda (_comparator1320_ . _args1321_)
      (let ((_val1323_
             (let ()
               (declare (not safe))
               (##structure-direct-instance-of?
                _comparator1320_
                'std/srfi/128#comparator::t))))
        (if _val1323_ _val1323_ (error)))
      (std/srfi/146/hash#hashmap-unfold
       null?
       (lambda (_args1326_) (values (car _args1326_) (cadr _args1326_)))
       cddr
       _args1321_
       _comparator1320_)))
  (define std/srfi/146/hash#hashmap-unfold
    (lambda (_stop?1294_
             _mapper1295_
             _successor1296_
             _seed1297_
             _comparator1298_)
      (let ((_val1300_ (procedure? _stop?1294_)))
        (if _val1300_ _val1300_ (error)))
      (let ((_val1303_ (procedure? _mapper1295_)))
        (if _val1303_ _val1303_ (error)))
      (let ((_val1306_ (procedure? _successor1296_)))
        (if _val1306_ _val1306_ (error)))
      (let ((_val1309_
             (let ()
               (declare (not safe))
               (##structure-direct-instance-of?
                _comparator1298_
                'std/srfi/128#comparator::t))))
        (if _val1309_ _val1309_ (error)))
      (let _loop1312_ ((_hashmap1314_
                        (std/srfi/146/hash#make-empty-hashmap
                         _comparator1298_))
                       (_seed1315_ _seed1297_))
        (if (_stop?1294_ _seed1315_)
            _hashmap1314_
            (let ((_g4976_ (_mapper1295_ _seed1315_)))
              (begin
                (let ((_g4977_ (let ()
                                 (declare (not safe))
                                 (if (##values? _g4976_)
                                     (##vector-length _g4976_)
                                     1))))
                  (if (not (let () (declare (not safe)) (##fx= _g4977_ 2)))
                      (error "Context expects 2 values" _g4977_)))
                (let ((_key1317_
                       (let () (declare (not safe)) (##vector-ref _g4976_ 0)))
                      (_value1318_
                       (let () (declare (not safe)) (##vector-ref _g4976_ 1))))
                  (_loop1312_
                   (std/srfi/146/hash#hashmap-adjoin
                    _hashmap1314_
                    _key1317_
                    _value1318_)
                   (_successor1296_ _seed1315_)))))))))
  (define std/srfi/146/hash#hashmap-empty?
    (lambda (_hashmap1286_)
      (let ((_val1288_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1286_
                'std/srfi/146/hash#<hashmap>))))
        (if _val1288_ _val1288_ (error)))
      (not (std/srfi/146/hash#hashmap-any?
            (lambda (_key1291_ _value1292_) '#t)
            _hashmap1286_))))
  (define std/srfi/146/hash#hashmap-contains?
    (lambda (_hashmap1270_ _key1271_)
      (let ((_val1273_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1270_
                'std/srfi/146/hash#<hashmap>))))
        (if _val1273_ _val1273_ (error)))
      (call-with-current-continuation
       (lambda (_return1276_)
         (std/srfi/146/hash#hashmap-search
          _hashmap1270_
          _key1271_
          (lambda (_insert1278_ _ignore1279_) (_return1276_ '#f))
          (lambda (_key1281_ _value1282_ _update1283_ _remove1284_)
            (_return1276_ '#t)))))))
  (define std/srfi/146/hash#hashmap-disjoint?
    (lambda (_hashmap11256_ _hashmap21257_)
      (let ((_val1259_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap11256_
                'std/srfi/146/hash#<hashmap>))))
        (if _val1259_ _val1259_ (error)))
      (let ((_val1262_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap21257_
                'std/srfi/146/hash#<hashmap>))))
        (if _val1262_ _val1262_ (error)))
      (call-with-current-continuation
       (lambda (_return1265_)
         (std/srfi/146/hash#hashmap-for-each
          (lambda (_key1267_ _value1268_)
            (if (std/srfi/146/hash#hashmap-contains? _hashmap21257_ _key1267_)
                (_return1265_ '#f)
                '#!void))
          _hashmap11256_)
         '#t))))
  (define std/srfi/146/hash#hashmap-ref__0
    (lambda (_hashmap1212_ _key1213_)
      (let ((_val1215_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1212_
                'std/srfi/146/hash#<hashmap>))))
        (if _val1215_ _val1215_ (error)))
      (std/srfi/146/hash#hashmap-ref__1
       _hashmap1212_
       _key1213_
       (lambda () (error '"hashmap-ref: key not in hashmap" _key1213_)))))
  (define std/srfi/146/hash#hashmap-ref__1
    (lambda (_hashmap1219_ _key1220_ _failure1221_)
      (let ((_val1223_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1219_
                'std/srfi/146/hash#<hashmap>))))
        (if _val1223_ _val1223_ (error)))
      (let ((_val1226_ (procedure? _failure1221_)))
        (if _val1226_ _val1226_ (error)))
      (std/srfi/146/hash#hashmap-ref__2
       _hashmap1219_
       _key1220_
       _failure1221_
       (lambda (_value1229_) _value1229_))))
  (define std/srfi/146/hash#hashmap-ref__2
    (lambda (_hashmap1231_ _key1232_ _failure1233_ _success1234_)
      (let ((_val1236_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1231_
                'std/srfi/146/hash#<hashmap>))))
        (if _val1236_ _val1236_ (error)))
      (let ((_val1239_ (procedure? _failure1233_)))
        (if _val1239_ _val1239_ (error)))
      (let ((_val1242_ (procedure? _success1234_)))
        (if _val1242_ _val1242_ (error)))
      ((call-with-current-continuation
        (lambda (_return-thunk1245_)
          (std/srfi/146/hash#hashmap-search
           _hashmap1231_
           _key1232_
           (lambda (_insert1247_ _ignore1248_)
             (_return-thunk1245_ _failure1233_))
           (lambda (_key1250_ _value1251_ _update1252_ _remove1253_)
             (_return-thunk1245_
              (lambda () (_success1234_ _value1251_))))))))))
  (define std/srfi/146/hash#hashmap-ref
    (lambda _g4979_
      (let ((_g4978_ (let () (declare (not safe)) (##length _g4979_))))
        (cond ((let () (declare (not safe)) (##fx= _g4978_ 2))
               (apply std/srfi/146/hash#hashmap-ref__0 _g4979_))
              ((let () (declare (not safe)) (##fx= _g4978_ 3))
               (apply std/srfi/146/hash#hashmap-ref__1 _g4979_))
              ((let () (declare (not safe)) (##fx= _g4978_ 4))
               (apply std/srfi/146/hash#hashmap-ref__2 _g4979_))
              (else
               (##raise-wrong-number-of-arguments-exception
                std/srfi/146/hash#hashmap-ref
                _g4979_))))))
  (define std/srfi/146/hash#hashmap-ref/default
    (lambda (_hashmap1204_ _key1205_ _default1206_)
      (let ((_val1208_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1204_
                'std/srfi/146/hash#<hashmap>))))
        (if _val1208_ _val1208_ (error)))
      (std/srfi/146/hash#hashmap-ref__1
       _hashmap1204_
       _key1205_
       (lambda () _default1206_))))
  (define std/srfi/146/hash#hashmap-adjoin
    (lambda (_hashmap1189_ . _args1190_)
      (let ((_val1192_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1189_
                'std/srfi/146/hash#<hashmap>))))
        (if _val1192_ _val1192_ (error)))
      (let _loop1195_ ((_args1197_ _args1190_) (_hashmap1198_ _hashmap1189_))
        (if (null? _args1197_)
            _hashmap1198_
            (let ((_g4980_ (std/srfi/146/hash#hashmap-intern
                            _hashmap1198_
                            (car _args1197_)
                            (lambda () (cadr _args1197_)))))
              (begin
                (let ((_g4981_ (let ()
                                 (declare (not safe))
                                 (if (##values? _g4980_)
                                     (##vector-length _g4980_)
                                     1))))
                  (if (not (let () (declare (not safe)) (##fx= _g4981_ 2)))
                      (error "Context expects 2 values" _g4981_)))
                (let ((_hashmap1201_
                       (let () (declare (not safe)) (##vector-ref _g4980_ 0)))
                      (_value1202_
                       (let () (declare (not safe)) (##vector-ref _g4980_ 1))))
                  (_loop1195_ (cddr _args1197_) _hashmap1201_))))))))
  (define std/srfi/146/hash#hashmap-adjoin! std/srfi/146/hash#hashmap-adjoin)
  (define std/srfi/146/hash#hashmap-set
    (lambda (_hashmap1173_ . _args1174_)
      (let ((_val1176_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1173_
                'std/srfi/146/hash#<hashmap>))))
        (if _val1176_ _val1176_ (error)))
      (let _loop1179_ ((_args1181_ _args1174_) (_hashmap1182_ _hashmap1173_))
        (if (null? _args1181_)
            _hashmap1182_
            (let ((_hashmap1187_
                   (std/srfi/146/hash#hashmap-update__1
                    _hashmap1182_
                    (car _args1181_)
                    (lambda (_value1184_) (cadr _args1181_))
                    (lambda () '#f))))
              (_loop1179_ (cddr _args1181_) _hashmap1187_))))))
  (define std/srfi/146/hash#hashmap-set! std/srfi/146/hash#hashmap-set)
  (define std/srfi/146/hash#hashmap-replace
    (lambda (_hashmap1155_ _key1156_ _value1157_)
      (let ((_val1159_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1155_
                'std/srfi/146/hash#<hashmap>))))
        (if _val1159_ _val1159_ (error)))
      (let ((_g4982_ (std/srfi/146/hash#hashmap-search
                      _hashmap1155_
                      _key1156_
                      (lambda (_insert1162_ _ignore1163_) (_ignore1163_ '#f))
                      (lambda (_old-key1165_
                               _old-value1166_
                               _update1167_
                               _remove1168_)
                        (_update1167_ _key1156_ _value1157_ '#f)))))
        (begin
          (let ((_g4983_ (let ()
                           (declare (not safe))
                           (if (##values? _g4982_)
                               (##vector-length _g4982_)
                               1))))
            (if (not (let () (declare (not safe)) (##fx= _g4983_ 2)))
                (error "Context expects 2 values" _g4983_)))
          (let ((_hashmap1170_
                 (let () (declare (not safe)) (##vector-ref _g4982_ 0)))
                (_obj1171_
                 (let () (declare (not safe)) (##vector-ref _g4982_ 1))))
            _hashmap1170_)))))
  (define std/srfi/146/hash#hashmap-replace! std/srfi/146/hash#hashmap-replace)
  (define std/srfi/146/hash#hashmap-delete
    (lambda (_hashmap1149_ . _keys1150_)
      (let ((_val1152_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1149_
                'std/srfi/146/hash#<hashmap>))))
        (if _val1152_ _val1152_ (error)))
      (std/srfi/146/hash#hashmap-delete-all _hashmap1149_ _keys1150_)))
  (define std/srfi/146/hash#hashmap-delete! std/srfi/146/hash#hashmap-delete)
  (define std/srfi/146/hash#hashmap-delete-all
    (lambda (_hashmap1126_ _keys1127_)
      (let ((_val1129_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1126_
                'std/srfi/146/hash#<hashmap>))))
        (if _val1129_ _val1129_ (error)))
      (let ((_val1132_ (list? _keys1127_))) (if _val1132_ _val1132_ (error)))
      (foldl1 (lambda (_key1135_ _hashmap1136_)
                (let ((_g4984_ (std/srfi/146/hash#hashmap-search
                                _hashmap1136_
                                _key1135_
                                (lambda (_insert1138_ _ignore1139_)
                                  (_ignore1139_ '#f))
                                (lambda (_old-key1141_
                                         _old-value1142_
                                         _update1143_
                                         _remove1144_)
                                  (_remove1144_ '#f)))))
                  (begin
                    (let ((_g4985_ (let ()
                                     (declare (not safe))
                                     (if (##values? _g4984_)
                                         (##vector-length _g4984_)
                                         1))))
                      (if (not (let () (declare (not safe)) (##fx= _g4985_ 2)))
                          (error "Context expects 2 values" _g4985_)))
                    (let ((_hashmap1146_
                           (let ()
                             (declare (not safe))
                             (##vector-ref _g4984_ 0)))
                          (_obj1147_
                           (let ()
                             (declare (not safe))
                             (##vector-ref _g4984_ 1))))
                      _hashmap1146_))))
              _hashmap1126_
              _keys1127_)))
  (define std/srfi/146/hash#hashmap-delete-all!
    std/srfi/146/hash#hashmap-delete-all)
  (define std/srfi/146/hash#hashmap-intern
    (lambda (_hashmap1104_ _key1105_ _failure1106_)
      (let ((_val1108_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1104_
                'std/srfi/146/hash#<hashmap>))))
        (if _val1108_ _val1108_ (error)))
      (let ((_val1111_ (procedure? _failure1106_)))
        (if _val1111_ _val1111_ (error)))
      (call-with-current-continuation
       (lambda (_return1114_)
         (std/srfi/146/hash#hashmap-search
          _hashmap1104_
          _key1105_
          (lambda (_insert1116_ _ignore1117_)
            (let ((_value1119_ (_failure1106_)))
              (_insert1116_ _value1119_ _value1119_)))
          (lambda (_old-key1121_ _old-value1122_ _update1123_ _remove1124_)
            (_return1114_ _hashmap1104_ _old-value1122_)))))))
  (define std/srfi/146/hash#hashmap-intern! std/srfi/146/hash#hashmap-intern)
  (define std/srfi/146/hash#hashmap-update__0
    (lambda (_hashmap1063_ _key1064_ _updater1065_)
      (std/srfi/146/hash#hashmap-update__1
       _hashmap1063_
       _key1064_
       _updater1065_
       (lambda ()
         (error '"hashmap-update: key not found in hashmap" _key1064_)))))
  (define std/srfi/146/hash#hashmap-update__1
    (lambda (_hashmap1068_ _key1069_ _updater1070_ _failure1071_)
      (std/srfi/146/hash#hashmap-update__2
       _hashmap1068_
       _key1069_
       _updater1070_
       _failure1071_
       (lambda (_value1073_) _value1073_))))
  (define std/srfi/146/hash#hashmap-update__2
    (lambda (_hashmap1075_ _key1076_ _updater1077_ _failure1078_ _success1079_)
      (let ((_val1081_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1075_
                'std/srfi/146/hash#<hashmap>))))
        (if _val1081_ _val1081_ (error)))
      (let ((_val1084_ (procedure? _updater1077_)))
        (if _val1084_ _val1084_ (error)))
      (let ((_val1087_ (procedure? _failure1078_)))
        (if _val1087_ _val1087_ (error)))
      (let ((_val1090_ (procedure? _success1079_)))
        (if _val1090_ _val1090_ (error)))
      (let ((_g4986_ (std/srfi/146/hash#hashmap-search
                      _hashmap1075_
                      _key1076_
                      (lambda (_insert1093_ _ignore1094_)
                        (_insert1093_ (_updater1077_ (_failure1078_)) '#f))
                      (lambda (_old-key1096_
                               _old-value1097_
                               _update1098_
                               _remove1099_)
                        (_update1098_
                         _key1076_
                         (_updater1077_ (_success1079_ _old-value1097_))
                         '#f)))))
        (begin
          (let ((_g4987_ (let ()
                           (declare (not safe))
                           (if (##values? _g4986_)
                               (##vector-length _g4986_)
                               1))))
            (if (not (let () (declare (not safe)) (##fx= _g4987_ 2)))
                (error "Context expects 2 values" _g4987_)))
          (let ((_hashmap1101_
                 (let () (declare (not safe)) (##vector-ref _g4986_ 0)))
                (_obj1102_
                 (let () (declare (not safe)) (##vector-ref _g4986_ 1))))
            _hashmap1101_)))))
  (define std/srfi/146/hash#hashmap-update
    (lambda _g4989_
      (let ((_g4988_ (let () (declare (not safe)) (##length _g4989_))))
        (cond ((let () (declare (not safe)) (##fx= _g4988_ 3))
               (apply std/srfi/146/hash#hashmap-update__0 _g4989_))
              ((let () (declare (not safe)) (##fx= _g4988_ 4))
               (apply std/srfi/146/hash#hashmap-update__1 _g4989_))
              ((let () (declare (not safe)) (##fx= _g4988_ 5))
               (apply std/srfi/146/hash#hashmap-update__2 _g4989_))
              (else
               (##raise-wrong-number-of-arguments-exception
                std/srfi/146/hash#hashmap-update
                _g4989_))))))
  (define std/srfi/146/hash#hashmap-update! std/srfi/146/hash#hashmap-update)
  (define std/srfi/146/hash#hashmap-update/default
    (lambda (_hashmap1057_ _key1058_ _updater1059_ _default1060_)
      (std/srfi/146/hash#hashmap-update__1
       _hashmap1057_
       _key1058_
       _updater1059_
       (lambda () _default1060_))))
  (define std/srfi/146/hash#hashmap-update!/default
    std/srfi/146/hash#hashmap-update/default)
  (define std/srfi/146/hash#hashmap-pop__0
    (lambda (_hashmap1035_)
      (std/srfi/146/hash#hashmap-pop__1
       _hashmap1035_
       (lambda () (error '"hashmap-pop: hashmap has no association")))))
  (define std/srfi/146/hash#hashmap-pop__1
    (lambda (_hashmap1038_ _failure1039_)
      (let ((_val1041_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1038_
                'std/srfi/146/hash#<hashmap>))))
        (if _val1041_ _val1041_ (error)))
      (let ((_val1044_ (procedure? _failure1039_)))
        (if _val1044_ _val1044_ (error)))
      ((call-with-current-continuation
        (lambda (_return-thunk1047_)
          (let ((_g4990_ (std/srfi/146/hash#hashmap-find
                          (lambda (_key1049_ _value1050_) '#t)
                          _hashmap1038_
                          (lambda () (_return-thunk1047_ _failure1039_)))))
            (begin
              (let ((_g4991_ (let ()
                               (declare (not safe))
                               (if (##values? _g4990_)
                                   (##vector-length _g4990_)
                                   1))))
                (if (not (let () (declare (not safe)) (##fx= _g4991_ 2)))
                    (error "Context expects 2 values" _g4991_)))
              (let ((_key1053_
                     (let () (declare (not safe)) (##vector-ref _g4990_ 0)))
                    (_value1054_
                     (let () (declare (not safe)) (##vector-ref _g4990_ 1))))
                (lambda ()
                  (values (std/srfi/146/hash#hashmap-delete
                           _hashmap1038_
                           _key1053_)
                          _key1053_
                          _value1054_))))))))))
  (define std/srfi/146/hash#hashmap-pop
    (lambda _g4993_
      (let ((_g4992_ (let () (declare (not safe)) (##length _g4993_))))
        (cond ((let () (declare (not safe)) (##fx= _g4992_ 1))
               (apply std/srfi/146/hash#hashmap-pop__0 _g4993_))
              ((let () (declare (not safe)) (##fx= _g4992_ 2))
               (apply std/srfi/146/hash#hashmap-pop__1 _g4993_))
              (else
               (##raise-wrong-number-of-arguments-exception
                std/srfi/146/hash#hashmap-pop
                _g4993_))))))
  (define std/srfi/146/hash#hashmap-pop! std/srfi/146/hash#hashmap-pop)
  (define std/srfi/146/hash#hashmap-search
    (lambda (_hashmap1005_ _key1006_ _failure1007_ _success1008_)
      (let ((_val1010_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1005_
                'std/srfi/146/hash#<hashmap>))))
        (if _val1010_ _val1010_ (error)))
      (let ((_val1013_ (procedure? _failure1007_)))
        (if _val1013_ _val1013_ (error)))
      (let ((_val1016_ (procedure? _success1008_)))
        (if _val1016_ _val1016_ (error)))
      (call-with-current-continuation
       (lambda (_return1019_)
         (let* ((_comparator1021_
                 (##structure-ref
                  _hashmap1005_
                  '1
                  std/srfi/146/hash#<hashmap>
                  '#f))
                (_g4994_ (std/srfi/146/hash#tree-search
                          _comparator1021_
                          (##structure-ref
                           _hashmap1005_
                           '2
                           std/srfi/146/hash#<hashmap>
                           '#f)
                          _key1006_
                          (lambda (_insert1023_ _ignore1024_)
                            (_failure1007_
                             (lambda (_value1026_ _obj1027_)
                               (_insert1023_ _key1006_ _value1026_ _obj1027_))
                             (lambda (_obj1029_)
                               (_return1019_ _hashmap1005_ _obj1029_))))
                          _success1008_)))
           (begin
             (let ((_g4995_ (let ()
                              (declare (not safe))
                              (if (##values? _g4994_)
                                  (##vector-length _g4994_)
                                  1))))
               (if (not (let () (declare (not safe)) (##fx= _g4995_ 2)))
                   (error "Context expects 2 values" _g4995_)))
             (let ((_tree1031_
                    (let () (declare (not safe)) (##vector-ref _g4994_ 0)))
                   (_obj1032_
                    (let () (declare (not safe)) (##vector-ref _g4994_ 1))))
               (let ()
                 (values (let ()
                           (declare (not safe))
                           (##structure
                            std/srfi/146/hash#<hashmap>
                            _comparator1021_
                            _tree1031_))
                         _obj1032_)))))))))
  (define std/srfi/146/hash#hashmap-search! std/srfi/146/hash#hashmap-search)
  (define std/srfi/146/hash#hashmap-size
    (lambda (_hashmap997_)
      (let ((_val999_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap997_
                'std/srfi/146/hash#<hashmap>))))
        (if _val999_ _val999_ (error)))
      (std/srfi/146/hash#hashmap-count
       (lambda (_key1002_ _value1003_) '#t)
       _hashmap997_)))
  (define std/srfi/146/hash#hashmap-find
    (lambda (_predicate979_ _hashmap980_ _failure981_)
      (let ((_val983_ (procedure? _predicate979_)))
        (if _val983_ _val983_ (error)))
      (let ((_val986_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap980_
                'std/srfi/146/hash#<hashmap>))))
        (if _val986_ _val986_ (error)))
      (let ((_val989_ (procedure? _failure981_)))
        (if _val989_ _val989_ (error)))
      (call-with-current-continuation
       (lambda (_return992_)
         (std/srfi/146/hash#hashmap-for-each
          (lambda (_key994_ _value995_)
            (if (_predicate979_ _key994_ _value995_)
                (_return992_ _key994_ _value995_)
                '#!void))
          _hashmap980_)
         (_failure981_)))))
  (define std/srfi/146/hash#hashmap-count
    (lambda (_predicate966_ _hashmap967_)
      (let ((_val969_ (procedure? _predicate966_)))
        (if _val969_ _val969_ (error)))
      (let ((_val972_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap967_
                'std/srfi/146/hash#<hashmap>))))
        (if _val972_ _val972_ (error)))
      (std/srfi/146/hash#hashmap-fold
       (lambda (_key975_ _value976_ _count977_)
         (if (_predicate966_ _key975_ _value976_)
             (+ '1 _count977_)
             _count977_))
       '0
       _hashmap967_)))
  (define std/srfi/146/hash#hashmap-any?
    (lambda (_predicate952_ _hashmap953_)
      (let ((_val955_ (procedure? _predicate952_)))
        (if _val955_ _val955_ (error)))
      (let ((_val958_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap953_
                'std/srfi/146/hash#<hashmap>))))
        (if _val958_ _val958_ (error)))
      (call-with-current-continuation
       (lambda (_return961_)
         (std/srfi/146/hash#hashmap-for-each
          (lambda (_key963_ _value964_)
            (if (_predicate952_ _key963_ _value964_)
                (_return961_ '#t)
                '#!void))
          _hashmap953_)
         '#f))))
  (define std/srfi/146/hash#hashmap-every?
    (lambda (_predicate940_ _hashmap941_)
      (let ((_val943_ (procedure? _predicate940_)))
        (if _val943_ _val943_ (error)))
      (let ((_val946_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap941_
                'std/srfi/146/hash#<hashmap>))))
        (if _val946_ _val946_ (error)))
      (not (std/srfi/146/hash#hashmap-any?
            (lambda (_key949_ _value950_)
              (not (_predicate940_ _key949_ _value950_)))
            _hashmap941_))))
  (define std/srfi/146/hash#hashmap-keys
    (lambda (_hashmap931_)
      (let ((_val933_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap931_
                'std/srfi/146/hash#<hashmap>))))
        (if _val933_ _val933_ (error)))
      (std/srfi/146/hash#hashmap-fold
       (lambda (_key936_ _value937_ _keys938_) (cons _key936_ _keys938_))
       '()
       _hashmap931_)))
  (define std/srfi/146/hash#hashmap-values
    (lambda (_hashmap922_)
      (let ((_val924_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap922_
                'std/srfi/146/hash#<hashmap>))))
        (if _val924_ _val924_ (error)))
      (std/srfi/146/hash#hashmap-fold
       (lambda (_key927_ _value928_ _values929_) (cons _value928_ _values929_))
       '()
       _hashmap922_)))
  (define std/srfi/146/hash#hashmap-entries
    (lambda (_hashmap917_)
      (let ((_val919_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap917_
                'std/srfi/146/hash#<hashmap>))))
        (if _val919_ _val919_ (error)))
      (values (std/srfi/146/hash#hashmap-keys _hashmap917_)
              (std/srfi/146/hash#hashmap-values _hashmap917_))))
  (define std/srfi/146/hash#hashmap-map
    (lambda (_proc897_ _comparator898_ _hashmap899_)
      (let ((_val901_ (procedure? _proc897_))) (if _val901_ _val901_ (error)))
      (let ((_val904_
             (let ()
               (declare (not safe))
               (##structure-direct-instance-of?
                _comparator898_
                'std/srfi/128#comparator::t))))
        (if _val904_ _val904_ (error)))
      (let ((_val907_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap899_
                'std/srfi/146/hash#<hashmap>))))
        (if _val907_ _val907_ (error)))
      (std/srfi/146/hash#hashmap-fold
       (lambda (_key910_ _value911_ _hashmap912_)
         (let ((_g4996_ (_proc897_ _key910_ _value911_)))
           (begin
             (let ((_g4997_ (let ()
                              (declare (not safe))
                              (if (##values? _g4996_)
                                  (##vector-length _g4996_)
                                  1))))
               (if (not (let () (declare (not safe)) (##fx= _g4997_ 2)))
                   (error "Context expects 2 values" _g4997_)))
             (let ((_key914_
                    (let () (declare (not safe)) (##vector-ref _g4996_ 0)))
                   (_value915_
                    (let () (declare (not safe)) (##vector-ref _g4996_ 1))))
               (std/srfi/146/hash#hashmap-set
                _hashmap912_
                _key914_
                _value915_)))))
       (std/srfi/146/hash#make-empty-hashmap _comparator898_)
       _hashmap899_)))
  (define std/srfi/146/hash#hashmap-for-each
    (lambda (_proc888_ _hashmap889_)
      (let ((_val891_ (procedure? _proc888_))) (if _val891_ _val891_ (error)))
      (let ((_val894_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap889_
                'std/srfi/146/hash#<hashmap>))))
        (if _val894_ _val894_ (error)))
      (std/srfi/146/hash#tree-for-each
       _proc888_
       (##structure-ref _hashmap889_ '2 std/srfi/146/hash#<hashmap> '#f))))
  (define std/srfi/146/hash#hashmap-fold
    (lambda (_proc878_ _acc879_ _hashmap880_)
      (let ((_val882_ (procedure? _proc878_))) (if _val882_ _val882_ (error)))
      (let ((_val885_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap880_
                'std/srfi/146/hash#<hashmap>))))
        (if _val885_ _val885_ (error)))
      (std/srfi/146/hash#tree-fold
       _proc878_
       _acc879_
       (##structure-ref _hashmap880_ '2 std/srfi/146/hash#<hashmap> '#f))))
  (define std/srfi/146/hash#hashmap-map->list
    (lambda (_proc865_ _hashmap866_)
      (let ((_val868_ (procedure? _proc865_))) (if _val868_ _val868_ (error)))
      (let ((_val871_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap866_
                'std/srfi/146/hash#<hashmap>))))
        (if _val871_ _val871_ (error)))
      (std/srfi/146/hash#hashmap-fold
       (lambda (_key874_ _value875_ _lst876_)
         (cons (_proc865_ _key874_ _value875_) _lst876_))
       '()
       _hashmap866_)))
  (define std/srfi/146/hash#hashmap-filter
    (lambda (_predicate852_ _hashmap853_)
      (let ((_val855_ (procedure? _predicate852_)))
        (if _val855_ _val855_ (error)))
      (let ((_val858_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap853_
                'std/srfi/146/hash#<hashmap>))))
        (if _val858_ _val858_ (error)))
      (std/srfi/146/hash#hashmap-fold
       (lambda (_key861_ _value862_ _hashmap863_)
         (if (_predicate852_ _key861_ _value862_)
             (std/srfi/146/hash#hashmap-set _hashmap863_ _key861_ _value862_)
             _hashmap863_))
       (std/srfi/146/hash#make-empty-hashmap
        (##structure-ref _hashmap853_ '1 std/srfi/146/hash#<hashmap> '#f))
       _hashmap853_)))
  (define std/srfi/146/hash#hashmap-filter! std/srfi/146/hash#hashmap-filter)
  (define std/srfi/146/hash#hashmap-remove
    (lambda (_predicate840_ _hashmap841_)
      (let ((_val843_ (procedure? _predicate840_)))
        (if _val843_ _val843_ (error)))
      (let ((_val846_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap841_
                'std/srfi/146/hash#<hashmap>))))
        (if _val846_ _val846_ (error)))
      (std/srfi/146/hash#hashmap-filter
       (lambda (_key849_ _value850_)
         (not (_predicate840_ _key849_ _value850_)))
       _hashmap841_)))
  (define std/srfi/146/hash#hashmap-remove! std/srfi/146/hash#hashmap-remove)
  (define std/srfi/146/hash#hashmap-partition
    (lambda (_predicate831_ _hashmap832_)
      (let ((_val834_ (procedure? _predicate831_)))
        (if _val834_ _val834_ (error)))
      (let ((_val837_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap832_
                'std/srfi/146/hash#<hashmap>))))
        (if _val837_ _val837_ (error)))
      (values (std/srfi/146/hash#hashmap-filter _predicate831_ _hashmap832_)
              (std/srfi/146/hash#hashmap-remove _predicate831_ _hashmap832_))))
  (define std/srfi/146/hash#hashmap-partition!
    std/srfi/146/hash#hashmap-partition)
  (define std/srfi/146/hash#hashmap-copy
    (lambda (_hashmap826_)
      (let ((_val828_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap826_
                'std/srfi/146/hash#<hashmap>))))
        (if _val828_ _val828_ (error)))
      _hashmap826_))
  (define std/srfi/146/hash#hashmap->alist
    (lambda (_hashmap817_)
      (let ((_val819_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap817_
                'std/srfi/146/hash#<hashmap>))))
        (if _val819_ _val819_ (error)))
      (std/srfi/146/hash#hashmap-fold
       (lambda (_key822_ _value823_ _alist824_)
         (cons (cons _key822_ _value823_) _alist824_))
       '()
       _hashmap817_)))
  (define std/srfi/146/hash#alist->hashmap
    (lambda (_comparator803_ _alist804_)
      (let ((_val806_
             (let ()
               (declare (not safe))
               (##structure-direct-instance-of?
                _comparator803_
                'std/srfi/128#comparator::t))))
        (if _val806_ _val806_ (error)))
      (let ((_val809_ (list? _alist804_))) (if _val809_ _val809_ (error)))
      (std/srfi/146/hash#hashmap-unfold
       null?
       (lambda (_alist812_)
         (let ((_key814_ (caar _alist812_)) (_value815_ (cdar _alist812_)))
           (values _key814_ _value815_)))
       cdr
       _alist804_
       _comparator803_)))
  (define std/srfi/146/hash#alist->hashmap!
    (lambda (_hashmap788_ _alist789_)
      (let ((_val791_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap788_
                'std/srfi/146/hash#<hashmap>))))
        (if _val791_ _val791_ (error)))
      (let ((_val794_ (list? _alist789_))) (if _val794_ _val794_ (error)))
      (foldl1 (lambda (_association797_ _hashmap798_)
                (let ((_key800_ (car _association797_))
                      (_value801_ (cdr _association797_)))
                  (std/srfi/146/hash#hashmap-set
                   _hashmap798_
                   _key800_
                   _value801_)))
              _hashmap788_
              _alist789_)))
  (define std/srfi/146/hash#hashmap=?__0
    (lambda (_comparator773_ _hashmap774_)
      (let ((_val776_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap774_
                'std/srfi/146/hash#<hashmap>))))
        (if _val776_ _val776_ (error)))
      '#t))
  (define std/srfi/146/hash#hashmap=?__2
    (lambda (_comparator783_ _hashmap1784_ _hashmap2785_ . _hashmaps786_)
      (if (std/srfi/146/hash#%hashmap=?
           _comparator783_
           _hashmap1784_
           _hashmap2785_)
          (apply std/srfi/146/hash#hashmap=?
                 _comparator783_
                 _hashmap2785_
                 _hashmaps786_)
          '#f)))
  (define std/srfi/146/hash#hashmap=?
    (lambda _g4999_
      (let ((_g4998_ (let () (declare (not safe)) (##length _g4999_))))
        (cond ((let () (declare (not safe)) (##fx= _g4998_ 2))
               (apply std/srfi/146/hash#hashmap=?__0 _g4999_))
              ((let () (declare (not safe)) (##fx= _g4998_ 3))
               (apply std/srfi/146/hash#%hashmap=? _g4999_))
              ((let () (declare (not safe)) (##fx>= _g4998_ 3))
               (apply std/srfi/146/hash#hashmap=?__2 _g4999_))
              (else
               (##raise-wrong-number-of-arguments-exception
                std/srfi/146/hash#hashmap=?
                _g4999_))))))
  (define std/srfi/146/hash#%hashmap=?
    (lambda (_comparator769_ _hashmap1770_ _hashmap2771_)
      (if (eq? (##structure-ref
                _hashmap1770_
                '1
                std/srfi/146/hash#<hashmap>
                '#f)
               (##structure-ref
                _hashmap2771_
                '1
                std/srfi/146/hash#<hashmap>
                '#f))
          (if (std/srfi/146/hash#%hashmap<=?
               _comparator769_
               _hashmap1770_
               _hashmap2771_)
              (std/srfi/146/hash#%hashmap<=?
               _comparator769_
               _hashmap2771_
               _hashmap1770_)
              '#f)
          '#f)))
  (define std/srfi/146/hash#hashmap<=?__0
    (lambda (_comparator736_ _hashmap737_)
      (let ((_val739_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap737_
                'std/srfi/146/hash#<hashmap>))))
        (if _val739_ _val739_ (error)))
      '#t))
  (define std/srfi/146/hash#hashmap<=?__1
    (lambda (_comparator742_ _hashmap1743_ _hashmap2744_)
      (let ((_val746_
             (let ()
               (declare (not safe))
               (##structure-direct-instance-of?
                _comparator742_
                'std/srfi/128#comparator::t))))
        (if _val746_ _val746_ (error)))
      (let ((_val749_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1743_
                'std/srfi/146/hash#<hashmap>))))
        (if _val749_ _val749_ (error)))
      (let ((_val752_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap2744_
                'std/srfi/146/hash#<hashmap>))))
        (if _val752_ _val752_ (error)))
      (std/srfi/146/hash#%hashmap<=?
       _comparator742_
       _hashmap1743_
       _hashmap2744_)))
  (define std/srfi/146/hash#hashmap<=?__2
    (lambda (_comparator755_ _hashmap1756_ _hashmap2757_ . _hashmaps758_)
      (let ((_val760_
             (let ()
               (declare (not safe))
               (##structure-direct-instance-of?
                _comparator755_
                'std/srfi/128#comparator::t))))
        (if _val760_ _val760_ (error)))
      (let ((_val763_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1756_
                'std/srfi/146/hash#<hashmap>))))
        (if _val763_ _val763_ (error)))
      (let ((_val766_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap2757_
                'std/srfi/146/hash#<hashmap>))))
        (if _val766_ _val766_ (error)))
      (if (std/srfi/146/hash#%hashmap<=?
           _comparator755_
           _hashmap1756_
           _hashmap2757_)
          (apply std/srfi/146/hash#hashmap<=?
                 _comparator755_
                 _hashmap2757_
                 _hashmaps758_)
          '#f)))
  (define std/srfi/146/hash#hashmap<=?
    (lambda _g5001_
      (let ((_g5000_ (let () (declare (not safe)) (##length _g5001_))))
        (cond ((let () (declare (not safe)) (##fx= _g5000_ 2))
               (apply std/srfi/146/hash#hashmap<=?__0 _g5001_))
              ((let () (declare (not safe)) (##fx= _g5000_ 3))
               (apply std/srfi/146/hash#hashmap<=?__1 _g5001_))
              ((let () (declare (not safe)) (##fx>= _g5000_ 3))
               (apply std/srfi/146/hash#hashmap<=?__2 _g5001_))
              (else
               (##raise-wrong-number-of-arguments-exception
                std/srfi/146/hash#hashmap<=?
                _g5001_))))))
  (define std/srfi/146/hash#%hashmap<=?
    (lambda (_comparator717_ _hashmap1718_ _hashmap2719_)
      (let ((_val721_
             (let ()
               (declare (not safe))
               (##structure-direct-instance-of?
                _comparator717_
                'std/srfi/128#comparator::t))))
        (if _val721_ _val721_ (error)))
      (let ((_val724_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1718_
                'std/srfi/146/hash#<hashmap>))))
        (if _val724_ _val724_ (error)))
      (let ((_val727_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap2719_
                'std/srfi/146/hash#<hashmap>))))
        (if _val727_ _val727_ (error)))
      (std/srfi/146/hash#hashmap-every?
       (lambda (_key730_ _value731_)
         (std/srfi/146/hash#hashmap-ref__2
          _hashmap2719_
          _key730_
          (lambda () '#f)
          (lambda (_stored-value734_)
            (std/srfi/128#=? _comparator717_ _value731_ _stored-value734_))))
       _hashmap1718_)))
  (define std/srfi/146/hash#hashmap>?__0
    (lambda (_comparator684_ _hashmap685_)
      (let ((_val687_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap685_
                'std/srfi/146/hash#<hashmap>))))
        (if _val687_ _val687_ (error)))
      '#t))
  (define std/srfi/146/hash#hashmap>?__1
    (lambda (_comparator690_ _hashmap1691_ _hashmap2692_)
      (let ((_val694_
             (let ()
               (declare (not safe))
               (##structure-direct-instance-of?
                _comparator690_
                'std/srfi/128#comparator::t))))
        (if _val694_ _val694_ (error)))
      (let ((_val697_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1691_
                'std/srfi/146/hash#<hashmap>))))
        (if _val697_ _val697_ (error)))
      (let ((_val700_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap2692_
                'std/srfi/146/hash#<hashmap>))))
        (if _val700_ _val700_ (error)))
      (std/srfi/146/hash#%hashmap>?
       _comparator690_
       _hashmap1691_
       _hashmap2692_)))
  (define std/srfi/146/hash#hashmap>?__2
    (lambda (_comparator703_ _hashmap1704_ _hashmap2705_ . _hashmaps706_)
      (let ((_val708_
             (let ()
               (declare (not safe))
               (##structure-direct-instance-of?
                _comparator703_
                'std/srfi/128#comparator::t))))
        (if _val708_ _val708_ (error)))
      (let ((_val711_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1704_
                'std/srfi/146/hash#<hashmap>))))
        (if _val711_ _val711_ (error)))
      (let ((_val714_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap2705_
                'std/srfi/146/hash#<hashmap>))))
        (if _val714_ _val714_ (error)))
      (if (std/srfi/146/hash#%hashmap>?
           _comparator703_
           _hashmap1704_
           _hashmap2705_)
          (apply std/srfi/146/hash#hashmap>?
                 _comparator703_
                 _hashmap2705_
                 _hashmaps706_)
          '#f)))
  (define std/srfi/146/hash#hashmap>?
    (lambda _g5003_
      (let ((_g5002_ (let () (declare (not safe)) (##length _g5003_))))
        (cond ((let () (declare (not safe)) (##fx= _g5002_ 2))
               (apply std/srfi/146/hash#hashmap>?__0 _g5003_))
              ((let () (declare (not safe)) (##fx= _g5002_ 3))
               (apply std/srfi/146/hash#hashmap>?__1 _g5003_))
              ((let () (declare (not safe)) (##fx>= _g5002_ 3))
               (apply std/srfi/146/hash#hashmap>?__2 _g5003_))
              (else
               (##raise-wrong-number-of-arguments-exception
                std/srfi/146/hash#hashmap>?
                _g5003_))))))
  (define std/srfi/146/hash#%hashmap>?
    (lambda (_comparator671_ _hashmap1672_ _hashmap2673_)
      (let ((_val675_
             (let ()
               (declare (not safe))
               (##structure-direct-instance-of?
                _comparator671_
                'std/srfi/128#comparator::t))))
        (if _val675_ _val675_ (error)))
      (let ((_val678_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1672_
                'std/srfi/146/hash#<hashmap>))))
        (if _val678_ _val678_ (error)))
      (let ((_val681_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap2673_
                'std/srfi/146/hash#<hashmap>))))
        (if _val681_ _val681_ (error)))
      (not (std/srfi/146/hash#%hashmap<=?
            _comparator671_
            _hashmap1672_
            _hashmap2673_))))
  (define std/srfi/146/hash#hashmap<?__0
    (lambda (_comparator638_ _hashmap639_)
      (let ((_val641_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap639_
                'std/srfi/146/hash#<hashmap>))))
        (if _val641_ _val641_ (error)))
      '#t))
  (define std/srfi/146/hash#hashmap<?__1
    (lambda (_comparator644_ _hashmap1645_ _hashmap2646_)
      (let ((_val648_
             (let ()
               (declare (not safe))
               (##structure-direct-instance-of?
                _comparator644_
                'std/srfi/128#comparator::t))))
        (if _val648_ _val648_ (error)))
      (let ((_val651_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1645_
                'std/srfi/146/hash#<hashmap>))))
        (if _val651_ _val651_ (error)))
      (let ((_val654_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap2646_
                'std/srfi/146/hash#<hashmap>))))
        (if _val654_ _val654_ (error)))
      (std/srfi/146/hash#%hashmap<?
       _comparator644_
       _hashmap1645_
       _hashmap2646_)))
  (define std/srfi/146/hash#hashmap<?__2
    (lambda (_comparator657_ _hashmap1658_ _hashmap2659_ . _hashmaps660_)
      (let ((_val662_
             (let ()
               (declare (not safe))
               (##structure-direct-instance-of?
                _comparator657_
                'std/srfi/128#comparator::t))))
        (if _val662_ _val662_ (error)))
      (let ((_val665_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1658_
                'std/srfi/146/hash#<hashmap>))))
        (if _val665_ _val665_ (error)))
      (let ((_val668_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap2659_
                'std/srfi/146/hash#<hashmap>))))
        (if _val668_ _val668_ (error)))
      (if (std/srfi/146/hash#%hashmap<?
           _comparator657_
           _hashmap1658_
           _hashmap2659_)
          (apply std/srfi/146/hash#hashmap<?
                 _comparator657_
                 _hashmap2659_
                 _hashmaps660_)
          '#f)))
  (define std/srfi/146/hash#hashmap<?
    (lambda _g5005_
      (let ((_g5004_ (let () (declare (not safe)) (##length _g5005_))))
        (cond ((let () (declare (not safe)) (##fx= _g5004_ 2))
               (apply std/srfi/146/hash#hashmap<?__0 _g5005_))
              ((let () (declare (not safe)) (##fx= _g5004_ 3))
               (apply std/srfi/146/hash#hashmap<?__1 _g5005_))
              ((let () (declare (not safe)) (##fx>= _g5004_ 3))
               (apply std/srfi/146/hash#hashmap<?__2 _g5005_))
              (else
               (##raise-wrong-number-of-arguments-exception
                std/srfi/146/hash#hashmap<?
                _g5005_))))))
  (define std/srfi/146/hash#%hashmap<?
    (lambda (_comparator625_ _hashmap1626_ _hashmap2627_)
      (let ((_val629_
             (let ()
               (declare (not safe))
               (##structure-direct-instance-of?
                _comparator625_
                'std/srfi/128#comparator::t))))
        (if _val629_ _val629_ (error)))
      (let ((_val632_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1626_
                'std/srfi/146/hash#<hashmap>))))
        (if _val632_ _val632_ (error)))
      (let ((_val635_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap2627_
                'std/srfi/146/hash#<hashmap>))))
        (if _val635_ _val635_ (error)))
      (std/srfi/146/hash#%hashmap>?
       _comparator625_
       _hashmap2627_
       _hashmap1626_)))
  (define std/srfi/146/hash#hashmap>=?__0
    (lambda (_comparator592_ _hashmap593_)
      (let ((_val595_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap593_
                'std/srfi/146/hash#<hashmap>))))
        (if _val595_ _val595_ (error)))
      '#t))
  (define std/srfi/146/hash#hashmap>=?__1
    (lambda (_comparator598_ _hashmap1599_ _hashmap2600_)
      (let ((_val602_
             (let ()
               (declare (not safe))
               (##structure-direct-instance-of?
                _comparator598_
                'std/srfi/128#comparator::t))))
        (if _val602_ _val602_ (error)))
      (let ((_val605_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1599_
                'std/srfi/146/hash#<hashmap>))))
        (if _val605_ _val605_ (error)))
      (let ((_val608_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap2600_
                'std/srfi/146/hash#<hashmap>))))
        (if _val608_ _val608_ (error)))
      (std/srfi/146/hash#%hashmap>=?
       _comparator598_
       _hashmap1599_
       _hashmap2600_)))
  (define std/srfi/146/hash#hashmap>=?__2
    (lambda (_comparator611_ _hashmap1612_ _hashmap2613_ . _hashmaps614_)
      (let ((_val616_
             (let ()
               (declare (not safe))
               (##structure-direct-instance-of?
                _comparator611_
                'std/srfi/128#comparator::t))))
        (if _val616_ _val616_ (error)))
      (let ((_val619_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1612_
                'std/srfi/146/hash#<hashmap>))))
        (if _val619_ _val619_ (error)))
      (let ((_val622_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap2613_
                'std/srfi/146/hash#<hashmap>))))
        (if _val622_ _val622_ (error)))
      (if (std/srfi/146/hash#%hashmap>=?
           _comparator611_
           _hashmap1612_
           _hashmap2613_)
          (apply std/srfi/146/hash#hashmap>=?
                 _comparator611_
                 _hashmap2613_
                 _hashmaps614_)
          '#f)))
  (define std/srfi/146/hash#hashmap>=?
    (lambda _g5007_
      (let ((_g5006_ (let () (declare (not safe)) (##length _g5007_))))
        (cond ((let () (declare (not safe)) (##fx= _g5006_ 2))
               (apply std/srfi/146/hash#hashmap>=?__0 _g5007_))
              ((let () (declare (not safe)) (##fx= _g5006_ 3))
               (apply std/srfi/146/hash#hashmap>=?__1 _g5007_))
              ((let () (declare (not safe)) (##fx>= _g5006_ 3))
               (apply std/srfi/146/hash#hashmap>=?__2 _g5007_))
              (else
               (##raise-wrong-number-of-arguments-exception
                std/srfi/146/hash#hashmap>=?
                _g5007_))))))
  (define std/srfi/146/hash#%hashmap>=?
    (lambda (_comparator579_ _hashmap1580_ _hashmap2581_)
      (let ((_val583_
             (let ()
               (declare (not safe))
               (##structure-direct-instance-of?
                _comparator579_
                'std/srfi/128#comparator::t))))
        (if _val583_ _val583_ (error)))
      (let ((_val586_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1580_
                'std/srfi/146/hash#<hashmap>))))
        (if _val586_ _val586_ (error)))
      (let ((_val589_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap2581_
                'std/srfi/146/hash#<hashmap>))))
        (if _val589_ _val589_ (error)))
      (not (std/srfi/146/hash#%hashmap<?
            _comparator579_
            _hashmap1580_
            _hashmap2581_))))
  (define std/srfi/146/hash#%hashmap-union
    (lambda (_hashmap1561_ _hashmap2562_)
      (std/srfi/146/hash#hashmap-fold
       (lambda (_key2564_ _value2565_ _hashmap566_)
         (let ((_g5008_ (std/srfi/146/hash#hashmap-search
                         _hashmap566_
                         _key2564_
                         (lambda (_insert568_ _ignore569_)
                           (_insert568_ _value2565_ '#f))
                         (lambda (_key1571_
                                  _value1572_
                                  _update573_
                                  _remove574_)
                           (_update573_ _key1571_ _value1572_ '#f)))))
           (begin
             (let ((_g5009_ (let ()
                              (declare (not safe))
                              (if (##values? _g5008_)
                                  (##vector-length _g5008_)
                                  1))))
               (if (not (let () (declare (not safe)) (##fx= _g5009_ 2)))
                   (error "Context expects 2 values" _g5009_)))
             (let ((_hashmap576_
                    (let () (declare (not safe)) (##vector-ref _g5008_ 0)))
                   (_obj577_
                    (let () (declare (not safe)) (##vector-ref _g5008_ 1))))
               _hashmap576_))))
       _hashmap1561_
       _hashmap2562_)))
  (define std/srfi/146/hash#%hashmap-intersection
    (lambda (_hashmap1555_ _hashmap2556_)
      (std/srfi/146/hash#hashmap-filter
       (lambda (_key1558_ _value1559_)
         (std/srfi/146/hash#hashmap-contains? _hashmap2556_ _key1558_))
       _hashmap1555_)))
  (define std/srfi/146/hash#%hashmap-difference
    (lambda (_hashmap1537_ _hashmap2538_)
      (std/srfi/146/hash#hashmap-fold
       (lambda (_key2540_ _value2541_ _hashmap542_)
         (let ((_g5010_ (std/srfi/146/hash#hashmap-search
                         _hashmap542_
                         _key2540_
                         (lambda (_insert544_ _ignore545_) (_ignore545_ '#f))
                         (lambda (_key1547_
                                  _value1548_
                                  _update549_
                                  _remove550_)
                           (_remove550_ '#f)))))
           (begin
             (let ((_g5011_ (let ()
                              (declare (not safe))
                              (if (##values? _g5010_)
                                  (##vector-length _g5010_)
                                  1))))
               (if (not (let () (declare (not safe)) (##fx= _g5011_ 2)))
                   (error "Context expects 2 values" _g5011_)))
             (let ((_hashmap552_
                    (let () (declare (not safe)) (##vector-ref _g5010_ 0)))
                   (_obj553_
                    (let () (declare (not safe)) (##vector-ref _g5010_ 1))))
               _hashmap552_))))
       _hashmap1537_
       _hashmap2538_)))
  (define std/srfi/146/hash#%hashmap-xor
    (lambda (_hashmap1519_ _hashmap2520_)
      (std/srfi/146/hash#hashmap-fold
       (lambda (_key2522_ _value2523_ _hashmap524_)
         (let ((_g5012_ (std/srfi/146/hash#hashmap-search
                         _hashmap524_
                         _key2522_
                         (lambda (_insert526_ _ignore527_)
                           (_insert526_ _value2523_ '#f))
                         (lambda (_key1529_
                                  _value1530_
                                  _update531_
                                  _remove532_)
                           (_remove532_ '#f)))))
           (begin
             (let ((_g5013_ (let ()
                              (declare (not safe))
                              (if (##values? _g5012_)
                                  (##vector-length _g5012_)
                                  1))))
               (if (not (let () (declare (not safe)) (##fx= _g5013_ 2)))
                   (error "Context expects 2 values" _g5013_)))
             (let ((_hashmap534_
                    (let () (declare (not safe)) (##vector-ref _g5012_ 0)))
                   (_obj535_
                    (let () (declare (not safe)) (##vector-ref _g5012_ 1))))
               _hashmap534_))))
       _hashmap1519_
       _hashmap2520_)))
  (define std/srfi/146/hash#hashmap-union__0
    (lambda (_hashmap495_)
      (let ((_val497_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap495_
                'std/srfi/146/hash#<hashmap>))))
        (if _val497_ _val497_ (error)))
      _hashmap495_))
  (define std/srfi/146/hash#hashmap-union__1
    (lambda (_hashmap1500_ _hashmap2501_)
      (let ((_val503_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1500_
                'std/srfi/146/hash#<hashmap>))))
        (if _val503_ _val503_ (error)))
      (let ((_val506_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap2501_
                'std/srfi/146/hash#<hashmap>))))
        (if _val506_ _val506_ (error)))
      (std/srfi/146/hash#%hashmap-union _hashmap1500_ _hashmap2501_)))
  (define std/srfi/146/hash#hashmap-union__2
    (lambda (_hashmap1509_ _hashmap2510_ . _hashmaps511_)
      (let ((_val513_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1509_
                'std/srfi/146/hash#<hashmap>))))
        (if _val513_ _val513_ (error)))
      (let ((_val516_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap2510_
                'std/srfi/146/hash#<hashmap>))))
        (if _val516_ _val516_ (error)))
      (apply std/srfi/146/hash#hashmap-union
             (std/srfi/146/hash#%hashmap-union _hashmap1509_ _hashmap2510_)
             _hashmaps511_)))
  (define std/srfi/146/hash#hashmap-union
    (lambda _g5015_
      (let ((_g5014_ (let () (declare (not safe)) (##length _g5015_))))
        (cond ((let () (declare (not safe)) (##fx= _g5014_ 1))
               (apply std/srfi/146/hash#hashmap-union__0 _g5015_))
              ((let () (declare (not safe)) (##fx= _g5014_ 2))
               (apply std/srfi/146/hash#hashmap-union__1 _g5015_))
              ((let () (declare (not safe)) (##fx>= _g5014_ 2))
               (apply std/srfi/146/hash#hashmap-union__2 _g5015_))
              (else
               (##raise-wrong-number-of-arguments-exception
                std/srfi/146/hash#hashmap-union
                _g5015_))))))
  (define std/srfi/146/hash#hashmap-union! std/srfi/146/hash#hashmap-union)
  (define std/srfi/146/hash#hashmap-intersection__0
    (lambda (_hashmap471_)
      (let ((_val473_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap471_
                'std/srfi/146/hash#<hashmap>))))
        (if _val473_ _val473_ (error)))
      _hashmap471_))
  (define std/srfi/146/hash#hashmap-intersection__1
    (lambda (_hashmap1476_ _hashmap2477_)
      (let ((_val479_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1476_
                'std/srfi/146/hash#<hashmap>))))
        (if _val479_ _val479_ (error)))
      (let ((_val482_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap2477_
                'std/srfi/146/hash#<hashmap>))))
        (if _val482_ _val482_ (error)))
      (std/srfi/146/hash#%hashmap-intersection _hashmap1476_ _hashmap2477_)))
  (define std/srfi/146/hash#hashmap-intersection__2
    (lambda (_hashmap1485_ _hashmap2486_ . _hashmaps487_)
      (let ((_val489_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1485_
                'std/srfi/146/hash#<hashmap>))))
        (if _val489_ _val489_ (error)))
      (let ((_val492_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap2486_
                'std/srfi/146/hash#<hashmap>))))
        (if _val492_ _val492_ (error)))
      (apply std/srfi/146/hash#hashmap-intersection
             (std/srfi/146/hash#%hashmap-intersection
              _hashmap1485_
              _hashmap2486_)
             _hashmaps487_)))
  (define std/srfi/146/hash#hashmap-intersection
    (lambda _g5017_
      (let ((_g5016_ (let () (declare (not safe)) (##length _g5017_))))
        (cond ((let () (declare (not safe)) (##fx= _g5016_ 1))
               (apply std/srfi/146/hash#hashmap-intersection__0 _g5017_))
              ((let () (declare (not safe)) (##fx= _g5016_ 2))
               (apply std/srfi/146/hash#hashmap-intersection__1 _g5017_))
              ((let () (declare (not safe)) (##fx>= _g5016_ 2))
               (apply std/srfi/146/hash#hashmap-intersection__2 _g5017_))
              (else
               (##raise-wrong-number-of-arguments-exception
                std/srfi/146/hash#hashmap-intersection
                _g5017_))))))
  (define std/srfi/146/hash#hashmap-intersection!
    std/srfi/146/hash#hashmap-intersection)
  (define std/srfi/146/hash#hashmap-difference__0
    (lambda (_hashmap447_)
      (let ((_val449_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap447_
                'std/srfi/146/hash#<hashmap>))))
        (if _val449_ _val449_ (error)))
      _hashmap447_))
  (define std/srfi/146/hash#hashmap-difference__1
    (lambda (_hashmap1452_ _hashmap2453_)
      (let ((_val455_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1452_
                'std/srfi/146/hash#<hashmap>))))
        (if _val455_ _val455_ (error)))
      (let ((_val458_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap2453_
                'std/srfi/146/hash#<hashmap>))))
        (if _val458_ _val458_ (error)))
      (std/srfi/146/hash#%hashmap-difference _hashmap1452_ _hashmap2453_)))
  (define std/srfi/146/hash#hashmap-difference__2
    (lambda (_hashmap1461_ _hashmap2462_ . _hashmaps463_)
      (let ((_val465_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1461_
                'std/srfi/146/hash#<hashmap>))))
        (if _val465_ _val465_ (error)))
      (let ((_val468_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap2462_
                'std/srfi/146/hash#<hashmap>))))
        (if _val468_ _val468_ (error)))
      (apply std/srfi/146/hash#hashmap-difference
             (std/srfi/146/hash#%hashmap-difference
              _hashmap1461_
              _hashmap2462_)
             _hashmaps463_)))
  (define std/srfi/146/hash#hashmap-difference
    (lambda _g5019_
      (let ((_g5018_ (let () (declare (not safe)) (##length _g5019_))))
        (cond ((let () (declare (not safe)) (##fx= _g5018_ 1))
               (apply std/srfi/146/hash#hashmap-difference__0 _g5019_))
              ((let () (declare (not safe)) (##fx= _g5018_ 2))
               (apply std/srfi/146/hash#hashmap-difference__1 _g5019_))
              ((let () (declare (not safe)) (##fx>= _g5018_ 2))
               (apply std/srfi/146/hash#hashmap-difference__2 _g5019_))
              (else
               (##raise-wrong-number-of-arguments-exception
                std/srfi/146/hash#hashmap-difference
                _g5019_))))))
  (define std/srfi/146/hash#hashmap-difference!
    std/srfi/146/hash#hashmap-difference)
  (define std/srfi/146/hash#hashmap-xor__0
    (lambda (_hashmap423_)
      (let ((_val425_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap423_
                'std/srfi/146/hash#<hashmap>))))
        (if _val425_ _val425_ (error)))
      _hashmap423_))
  (define std/srfi/146/hash#hashmap-xor__1
    (lambda (_hashmap1428_ _hashmap2429_)
      (let ((_val431_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1428_
                'std/srfi/146/hash#<hashmap>))))
        (if _val431_ _val431_ (error)))
      (let ((_val434_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap2429_
                'std/srfi/146/hash#<hashmap>))))
        (if _val434_ _val434_ (error)))
      (std/srfi/146/hash#%hashmap-xor _hashmap1428_ _hashmap2429_)))
  (define std/srfi/146/hash#hashmap-xor__2
    (lambda (_hashmap1437_ _hashmap2438_ . _hashmaps439_)
      (let ((_val441_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap1437_
                'std/srfi/146/hash#<hashmap>))))
        (if _val441_ _val441_ (error)))
      (let ((_val444_
             (let ()
               (declare (not safe))
               (##structure-instance-of?
                _hashmap2438_
                'std/srfi/146/hash#<hashmap>))))
        (if _val444_ _val444_ (error)))
      (apply std/srfi/146/hash#hashmap-xor
             (std/srfi/146/hash#%hashmap-xor _hashmap1437_ _hashmap2438_)
             _hashmaps439_)))
  (define std/srfi/146/hash#hashmap-xor
    (lambda _g5021_
      (let ((_g5020_ (let () (declare (not safe)) (##length _g5021_))))
        (cond ((let () (declare (not safe)) (##fx= _g5020_ 1))
               (apply std/srfi/146/hash#hashmap-xor__0 _g5021_))
              ((let () (declare (not safe)) (##fx= _g5020_ 2))
               (apply std/srfi/146/hash#hashmap-xor__1 _g5021_))
              ((let () (declare (not safe)) (##fx>= _g5020_ 2))
               (apply std/srfi/146/hash#hashmap-xor__2 _g5021_))
              (else
               (##raise-wrong-number-of-arguments-exception
                std/srfi/146/hash#hashmap-xor
                _g5021_))))))
  (define std/srfi/146/hash#hashmap-xor! std/srfi/146/hash#hashmap-xor)
  (define std/srfi/146/hash#hashmap-equality
    (lambda (_comparator415_)
      (let ((_val417_
             (let ()
               (declare (not safe))
               (##structure-direct-instance-of?
                _comparator415_
                'std/srfi/128#comparator::t))))
        (if _val417_ _val417_ (error)))
      (lambda (_hashmap1420_ _hashmap2421_)
        (std/srfi/146/hash#%hashmap=?
         _comparator415_
         _hashmap1420_
         _hashmap2421_))))
  (define std/srfi/146/hash#hashmap-hash-function
    (lambda (_comparator408_)
      (let ((_val410_
             (let ()
               (declare (not safe))
               (##structure-direct-instance-of?
                _comparator408_
                'std/srfi/128#comparator::t))))
        (if _val410_ _val410_ (error)))
      (lambda (_hashmap413_) '0)))
  (define std/srfi/146/hash#make-hashmap-comparator
    (lambda (_comparator406_)
      (let ((__tmp5023 (std/srfi/146/hash#hashmap-equality _comparator406_))
            (__tmp5022
             (std/srfi/146/hash#hashmap-hash-function _comparator406_)))
        (declare (not safe))
        (##structure
         std/srfi/128#comparator::t
         std/srfi/146/hash#hashmap?
         __tmp5023
         '#f
         __tmp5022))))
  (define std/srfi/146/hash#hashmap-comparator
    (std/srfi/146/hash#make-hashmap-comparator
     (std/srfi/128#make-default-comparator)))
  (std/srfi/128#comparator-register-default!
   std/srfi/146/hash#hashmap-comparator))
