
(SDEFUN |KDAGG-;key?;KeySB;1| ((|k| |Key|) (|t| S) ($ |Boolean|))
        (QEQCAR (SPADCALL |k| |t| (QREFELT $ 10)) 0)) 

(SDEFUN |KDAGG-;member?;RSB;2|
        ((|p| |Record| (|:| |key| |Key|) (|:| |entry| |Entry|)) (|t| S)
         ($ |Boolean|))
        (SPROG ((|r| (|Union| |Entry| "failed")))
               (SEQ
                (LETT |r| (SPADCALL (QCAR |p|) |t| (QREFELT $ 10))
                      |KDAGG-;member?;RSB;2|)
                (EXIT
                 (COND
                  ((QEQCAR |r| 0)
                   (SPADCALL (CONS 0 (QCDR |r|)) (CONS 0 (QCDR |p|))
                             (QREFELT $ 13)))
                  ('T NIL)))))) 

(SDEFUN |KDAGG-;keys;SL;3| ((|t| S) ($ |List| |Key|))
        (SPROG ((#1=#:G723 NIL) (|x| NIL) (#2=#:G722 NIL))
               (SEQ
                (PROGN
                 (LETT #2# NIL . #3=(|KDAGG-;keys;SL;3|))
                 (SEQ (LETT |x| NIL . #3#)
                      (LETT #1# (SPADCALL |t| (QREFELT $ 17)) . #3#) G190
                      (COND
                       ((OR (ATOM #1#) (PROGN (LETT |x| (CAR #1#) . #3#) NIL))
                        (GO G191)))
                      (SEQ (EXIT (LETT #2# (CONS (QCAR |x|) #2#) . #3#)))
                      (LETT #1# (CDR #1#) . #3#) (GO G190) G191
                      (EXIT (NREVERSE #2#))))))) 

(DECLAIM (NOTINLINE |KeyedDictionary&;|)) 

(DEFUN |KeyedDictionary&| (|#1| |#2| |#3|)
  (SPROG ((|pv$| NIL) ($ NIL) (|dv$| NIL) (DV$3 NIL) (DV$2 NIL) (DV$1 NIL))
         (PROGN
          (LETT DV$1 (|devaluate| |#1|) . #1=(|KeyedDictionary&|))
          (LETT DV$2 (|devaluate| |#2|) . #1#)
          (LETT DV$3 (|devaluate| |#3|) . #1#)
          (LETT |dv$| (LIST '|KeyedDictionary&| DV$1 DV$2 DV$3) . #1#)
          (LETT $ (GETREFV 20) . #1#)
          (QSETREFV $ 0 |dv$|)
          (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
          (|stuffDomainSlots| $)
          (QSETREFV $ 6 |#1|)
          (QSETREFV $ 7 |#2|)
          (QSETREFV $ 8 |#3|)
          (SETF |pv$| (QREFELT $ 3))
          (COND
           ((|HasCategory| |#1| '(|finiteAggregate|))
            (QSETREFV $ 19 (CONS (|dispatchFunction| |KDAGG-;keys;SL;3|) $))))
          $))) 

(MAKEPROP '|KeyedDictionary&| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
              (|local| |#3|) (|Union| 8 '"failed") (0 . |search|) (|Boolean|)
              |KDAGG-;key?;KeySB;1| (6 . =)
              (|Record| (|:| |key| 7) (|:| |entry| 8)) |KDAGG-;member?;RSB;2|
              (|List| 14) (12 . |parts|) (|List| 7) (17 . |keys|))
           '#(|member?| 22 |keys| 28 |key?| 33) 'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 19
                                                 '(2 6 9 7 0 10 2 9 11 0 0 13 1
                                                   6 16 0 17 1 0 18 0 19 2 0 11
                                                   14 0 15 1 0 18 0 19 2 0 11 7
                                                   0 12)))))
           '|lookupComplete|)) 
