
(SDEFUN |DIOPS-;construct;LA;1| ((|l| (|List| S)) (% (A)))
        (SPADCALL |l| (QREFELT % 9))) 

(SDEFUN |DIOPS-;dictionary;A;2| ((% (A))) (SPADCALL (QREFELT % 11))) 

(SDEFUN |DIOPS-;copy;2A;3| ((|d| (A)) (% (A)))
        (SPADCALL (SPADCALL |d| (QREFELT % 13)) (QREFELT % 9))) 

(SDEFUN |DIOPS-;coerce;AOf;4| ((|s| (A)) (% (|OutputForm|)))
        (SPROG ((#1=#:G14 NIL) (|x| NIL) (#2=#:G13 NIL))
               (SEQ
                (SPADCALL (SPADCALL "dictionary" (QREFELT % 17))
                          (PROGN
                           (LETT #2# NIL)
                           (SEQ (LETT |x| NIL)
                                (LETT #1# (SPADCALL |s| (QREFELT % 13))) G190
                                (COND
                                 ((OR (ATOM #1#)
                                      (PROGN (LETT |x| (CAR #1#)) NIL))
                                  (GO G191)))
                                (SEQ
                                 (EXIT
                                  (LETT #2#
                                        (CONS (SPADCALL |x| (QREFELT % 18))
                                              #2#))))
                                (LETT #1# (CDR #1#)) (GO G190) G191
                                (EXIT (NREVERSE #2#))))
                          (QREFELT % 20))))) 

(DECLAIM (NOTINLINE |DictionaryOperations&;|)) 

(DEFUN |DictionaryOperations&| (|#1| |#2|)
  (SPROG ((|pv$| NIL) (% NIL) (|dv$| NIL) (DV$2 NIL) (DV$1 NIL))
         (PROGN
          (LETT DV$1 (|devaluate| |#1|))
          (LETT DV$2 (|devaluate| |#2|))
          (LETT |dv$| (LIST '|DictionaryOperations&| DV$1 DV$2))
          (LETT % (GETREFV 22))
          (QSETREFV % 0 |dv$|)
          (QSETREFV % 3
                    (LETT |pv$|
                          (|buildPredVector| 0 0
                                             (LIST
                                              (|HasCategory| |#2|
                                                             '(|BasicType|))
                                              (|HasCategory| |#1|
                                                             '(|finiteAggregate|))))))
          (|stuffDomainSlots| %)
          (QSETREFV % 6 |#1|)
          (QSETREFV % 7 |#2|)
          (SETF |pv$| (QREFELT % 3))
          (COND
           ((|testBitVector| |pv$| 2)
            (PROGN
             (QSETREFV % 14 (CONS (|dispatchFunction| |DIOPS-;copy;2A;3|) %))
             (COND
              ((|HasCategory| |#2| '(|CoercibleTo| (|OutputForm|)))
               (QSETREFV % 21
                         (CONS (|dispatchFunction| |DIOPS-;coerce;AOf;4|)
                               %)))))))
          %))) 

(MAKEPROP '|DictionaryOperations&| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) (|List| 7)
              (0 . |dictionary|) |DIOPS-;construct;LA;1| (5 . |empty|)
              |DIOPS-;dictionary;A;2| (9 . |parts|) (14 . |copy|)
              (|OutputForm|) (|String|) (19 . |coerce|) (24 . |coerce|)
              (|List| %) (29 . |prefix|) (35 . |coerce|))
           '#(|dictionary| 40 |copy| 44 |construct| 49 |coerce| 54) 'NIL
           (CONS (|makeByteWordVec2| 1 '(0))
                 (CONS '#(NIL)
                       (CONS
                        '#((|Join|
                            (|mkCategory|
                             (LIST '((|dictionary| (|#1| (|List| |#2|))) T)
                                   '((|dictionary| (|#1|)) T)
                                   '((|construct| (|#1| (|List| |#2|))) T)
                                   '((|coerce| ((|OutputForm|) |#1|)) T)
                                   '((|copy| (|#1| |#1|)) T))
                             (LIST) NIL NIL)))
                        (|makeByteWordVec2| 21
                                            '(1 6 0 8 9 0 6 0 11 1 6 8 0 13 1 0
                                              0 0 14 1 16 15 0 17 1 7 15 0 18 2
                                              15 0 0 19 20 1 0 15 0 21 0 0 0 12
                                              1 0 0 0 14 1 0 0 8 10 1 0 15 0
                                              21)))))
           '|lookupComplete|)) 
