
(/VERSIONCHECK 2) 

(DEFUN |INDE;coerceOF| (|t| $)
  (COND
    ((EQL (QCDR |t|) 1) (SPADCALL (QCAR |t|) (QREFELT $ 10)))
    ('T
     (SPADCALL (SPADCALL (QCAR |t|) (QREFELT $ 10))
         (SPADCALL (QCDR |t|) (QREFELT $ 12)) (QREFELT $ 13))))) 

(DEFUN |INDE;coerce;$Of;2| (|x| $)
  (PROG (#0=#:G1828 |t| #1=#:G1829)
    (RETURN
      (SEQ (COND
             ((NULL |x|) (SPADCALL 1 (QREFELT $ 15)))
             ((NULL (CDR |x|)) (|INDE;coerceOF| (|SPADfirst| |x|) $))
             ('T
              (SPADCALL (ELT $ 16)
                  (PROGN
                    (LETT #0# NIL . #2=(|INDE;coerce;$Of;2|))
                    (SEQ (LETT |t| NIL . #2#) (LETT #1# |x| . #2#) G190
                         (COND
                           ((OR (ATOM #1#)
                                (PROGN (LETT |t| (CAR #1#) . #2#) NIL))
                            (GO G191)))
                         (SEQ (EXIT (LETT #0#
                                     (CONS (|INDE;coerceOF| |t| $) #0#) . #2#)))
                         (LETT #1# (CDR #1#) . #2#) (GO G190) G191
                         (EXIT (NREVERSE0 #0#))))
                  (QREFELT $ 19)))))))) 

(DEFUN |IndexedExponents| (#0=#:G1834)
  (PROG ()
    (RETURN
      (PROG (#1=#:G1835)
        (RETURN
          (COND
            ((LETT #1#
                   (|lassocShiftWithFunction| (LIST (|devaluate| #0#))
                       (HGET |$ConstructorCache| '|IndexedExponents|)
                       '|domainEqualList|)
                   . #2=(|IndexedExponents|))
             (|CDRwithIncrement| #1#))
            ('T
             (UNWIND-PROTECT
               (PROG1 (|IndexedExponents;| #0#) (LETT #1# T . #2#))
               (COND
                 ((NOT #1#)
                  (HREM |$ConstructorCache| '|IndexedExponents|))))))))))) 

(DEFUN |IndexedExponents;| (|#1|)
  (PROG (DV$1 |dv$| $ |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|) . #0=(|IndexedExponents|))
        (LETT |dv$| (LIST '|IndexedExponents| DV$1) . #0#)
        (LETT $ (GETREFV 27) . #0#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
        (|haddProp| |$ConstructorCache| '|IndexedExponents| (LIST DV$1)
            (CONS 1 $))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6 |#1|)
        (QSETREFV $ 7
            (|Record| (|:| |k| |#1|) (|:| |c| (|NonNegativeInteger|))))
        (QSETREFV $ 8 (|List| (QREFELT $ 7)))
        $)))) 

(MAKEPROP '|IndexedExponents| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL
             (|IndexedDirectProductOrderedAbelianMonoidSup| 11 6)
             (|local| |#1|) '|Term| '|Rep| (|OutputForm|)
             (0 . |coerce|) (|NonNegativeInteger|) (5 . |coerce|)
             (10 . **) (|Integer|) (16 . |coerce|) (21 . *)
             (|Mapping| 9 9 9) (|List| 9) (27 . |reduce|)
             |INDE;coerce;$Of;2| (|Mapping| 11 11)
             (|Union| $ '"failed") (|Boolean|) (|PositiveInteger|)
             (|SingleInteger|) (|String|))
          '#(|coerce| 33) 'NIL
          (CONS (|makeByteWordVec2| 1 '(0 0 0 0 0 0 0 0 0 0 0 0))
                (CONS '#(NIL NIL NIL NIL NIL |AbelianMonoid&|
                         |OrderedSet&| NIL |AbelianSemiGroup&|
                         |SetCategory&| |BasicType&| NIL)
                      (CONS '#((|OrderedAbelianMonoidSup|)
                               (|OrderedCancellationAbelianMonoid|)
                               (|OrderedAbelianMonoid|)
                               (|CancellationAbelianMonoid|)
                               (|OrderedAbelianSemiGroup|)
                               (|AbelianMonoid|) (|OrderedSet|)
                               (|IndexedDirectProductCategory| 11 6)
                               (|AbelianSemiGroup|) (|SetCategory|)
                               (|BasicType|) (|CoercibleTo| 9))
                            (|makeByteWordVec2| 20
                                '(1 6 9 0 10 1 11 9 0 12 2 9 0 0 0 13 1
                                  14 9 0 15 2 9 0 0 0 16 2 18 9 17 0 19
                                  1 0 9 0 20)))))
          '|lookupIncomplete|)) 
