
(/VERSIONCHECK 2) 

(DEFUN |SparseTable| (&REST #1=#:G1854)
  (PROG ()
    (RETURN
     (PROG (#2=#:G1855)
       (RETURN
        (COND
         ((LETT #2#
                (|lassocShiftWithFunction| (|devaluateList| #1#)
                                           (HGET |$ConstructorCache|
                                                 '|SparseTable|)
                                           '|domainEqualList|)
                . #3=(|SparseTable|))
          (|CDRwithIncrement| #2#))
         ('T
          (UNWIND-PROTECT
              (PROG1 (APPLY (|function| |SparseTable;|) #1#)
                (LETT #2# T . #3#))
            (COND ((NOT #2#) (HREM |$ConstructorCache| '|SparseTable|))))))))))) 

(DEFUN |SparseTable;| (|#1| |#2| |#3|)
  (PROG (#1=#:G1853 |pv$| #2=#:G1851 #3=#:G1852 $ |dv$| DV$3 DV$2 DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #4=(|SparseTable|))
      (LETT DV$2 (|devaluate| |#2|) . #4#)
      (LETT DV$3 (|devaluate| |#3|) . #4#)
      (LETT |dv$| (LIST '|SparseTable| DV$1 DV$2 DV$3) . #4#)
      (LETT $ (GETREFV 32) . #4#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3
                (LETT |pv$|
                      (|buildPredVector| 0 0
                                         (LIST
                                          (|HasCategory|
                                           (|Record| (|:| |key| |#1|)
                                                     (|:| |entry| |#2|))
                                           '(|ConvertibleTo| (|InputForm|)))
                                          (LETT #3#
                                                (|HasCategory|
                                                 (|Record| (|:| |key| |#1|)
                                                           (|:| |entry| |#2|))
                                                 '(|SetCategory|))
                                                . #4#)
                                          (AND
                                           (|HasCategory|
                                            (|Record| (|:| |key| |#1|)
                                                      (|:| |entry| |#2|))
                                            (LIST '|Evalable|
                                                  (LIST '|Record|
                                                        (LIST '|:| '|key|
                                                              (|devaluate|
                                                               |#1|))
                                                        (LIST '|:| '|entry|
                                                              (|devaluate|
                                                               |#2|)))))
                                           #3#)
                                          (|HasCategory| |#1| '(|OrderedSet|))
                                          (LETT #2#
                                                (|HasCategory| |#2|
                                                               '(|SetCategory|))
                                                . #4#)
                                          (OR #2# #3#)
                                          (AND
                                           (|HasCategory| |#2|
                                                          (LIST '|Evalable|
                                                                (|devaluate|
                                                                 |#2|)))
                                           #2#)))
                      . #4#))
      (|haddProp| |$ConstructorCache| '|SparseTable| (LIST DV$1 DV$2 DV$3)
                  (CONS 1 $))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (QSETREFV $ 7 |#2|)
      (QSETREFV $ 8 |#3|)
      (AND (LETT #1# (|HasCategory| $ '(|finiteAggregate|)) . #4#)
           (|augmentPredVector| $ 128))
      (AND #1# #3# (|augmentPredVector| $ 256))
      (AND #2# #1# (|augmentPredVector| $ 512))
      (AND (|HasCategory| $ '(|shallowlyMutable|))
           (|augmentPredVector| $ 1024))
      $)))) 

(MAKEPROP '|SparseTable| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL (|GeneralSparseTable| 6 7 (|Table| 6 7) 8)
              (|local| |#1|) (|local| |#2|) (|local| |#3|)
              (|Record| (|:| |key| 6) (|:| |entry| 7)) (|List| 9) (|List| 12)
              (|Equation| 9) (|Mapping| 9 9 9) (|Boolean|)
              (|NonNegativeInteger|) (|Equation| 7) (|List| 16) (|List| 7)
              (|OutputForm|) (|String|) (|SingleInteger|) (|InputForm|)
              (|Mapping| 14 7) (|Mapping| 14 9) (|Mapping| 7 7) (|Void|)
              (|Mapping| 9 9) (|Mapping| 7 7 7) (|List| 6)
              (|Union| 7 '"failed") (|Union| 9 '"failed"))
           '#() 'NIL
           (CONS
            (|makeByteWordVec2| 7
                                '(0 0 0 0 0 0 0 0 0 0 0 3 6 7 0 0 0 3 6 6 1 7))
            (CONS
             '#(|TableAggregate&| |KeyedDictionary&| |Dictionary&|
                |DictionaryOperations&| |BagAggregate&| |IndexedAggregate&|
                |Collection&| |HomogeneousAggregate&| |HomogeneousAggregate&|
                |EltableAggregate&| |Aggregate&| |Evalable&| |SetCategory&|
                |Evalable&| NIL NIL NIL |InnerEvalable&| |BasicType&| NIL NIL
                |InnerEvalable&|)
             (CONS
              '#((|TableAggregate| 6 7) (|KeyedDictionary| 6 7)
                 (|Dictionary| (|Record| (|:| |key| 6) (|:| |entry| 7)))
                 (|DictionaryOperations|
                  (|Record| (|:| |key| 6) (|:| |entry| 7)))
                 (|BagAggregate| (|Record| (|:| |key| 6) (|:| |entry| 7)))
                 (|IndexedAggregate| 6 7)
                 (|Collection| (|Record| (|:| |key| 6) (|:| |entry| 7)))
                 (|HomogeneousAggregate| 7)
                 (|HomogeneousAggregate|
                  (|Record| (|:| |key| 6) (|:| |entry| 7)))
                 (|EltableAggregate| 6 7) (|Aggregate|)
                 (|Evalable| (|Record| (|:| |key| 6) (|:| |entry| 7)))
                 (|SetCategory|) (|Evalable| 7) (|Eltable| 6 7) (|Type|)
                 (|shallowlyMutable|)
                 (|InnerEvalable| (|Record| (|:| |key| 6) (|:| |entry| 7))
                                  (|Record| (|:| |key| 6) (|:| |entry| 7)))
                 (|BasicType|) (|CoercibleTo| 19) (|ConvertibleTo| 22)
                 (|InnerEvalable| 7 7))
              (|makeByteWordVec2| -999999 'NIL))))
           '|lookupIncomplete|)) 
