
(/VERSIONCHECK 2) 

(DEFUN |PATTERN2;map;MPP;1| (|f| |p| $)
  (PROG (|r| |u| #0=#:G1833 |ur| #1=#:G1883 #2=#:G1884 |v| #3=#:G1844
             |vr| #4=#:G1885 #5=#:G1886 |l| #6=#:G1887 #7=#:G1851
             #8=#:G1888 |x| #9=#:G1862 |xr| |w| #10=#:G1871 |wr| |sy|)
    (RETURN
      (SEQ (LETT |r| (SPADCALL |p| (QREFELT $ 10))
                 . #11=(|PATTERN2;map;MPP;1|))
           (EXIT (COND
                   ((QEQCAR |r| 0)
                    (SPADCALL (SPADCALL (QCDR |r|) |f|) (QREFELT $ 12)))
                   ((QEQCAR (LETT |u|
                                  (SPADCALL |p| (QREFELT $ 15)) . #11#)
                            0)
                    (SEQ (LETT |ur|
                               (PROG2 (LETT #0# |u| . #11#) (QCDR #0#)
                                 (|check-union| (QEQCAR #0# 0)
                                     (|Record|
                                      (|:| |op| (|BasicOperator|))
                                      (|:| |arg|
                                       (|List|
                                        (|Pattern| (QREFELT $ 6)))))
                                     #0#)) . #11#)
                         (EXIT (SPADCALL (QCAR |ur|)
                                   (PROGN
                                     (LETT #1# NIL . #11#)
                                     (SEQ (LETT |x| NIL . #11#)
                                      (LETT #2# (QCDR |ur|) . #11#)
                                      G190
                                      (COND
                                        ((OR (ATOM #2#)
                                          (PROGN
                                            (LETT |x| (CAR #2#) . #11#)
                                            NIL))
                                         #12=(GO G191)))
                                      (SEQ
                                       (EXIT
                                        (LETT #1#
                                         (CONS
                                          (SPADCALL |f| |x|
                                           (QREFELT $ 17))
                                          #1#) . #11#)))
                                      (LETT #2# (CDR #2#) . #11#)
                                      #13=(GO G190) G191
                                      (EXIT (NREVERSE0 #1#))))
                                   (QREFELT $ 20)))))
                   ((QEQCAR (LETT |v|
                                  (SPADCALL |p| (QREFELT $ 23)) . #11#)
                            0)
                    (SEQ (LETT |vr|
                               (PROG2 (LETT #3# |v| . #11#) (QCDR #3#)
                                 (|check-union| (QEQCAR #3# 0)
                                     (|Record|
                                      (|:| |num|
                                       (|Pattern| (QREFELT $ 6)))
                                      (|:| |den|
                                       (|Pattern| (QREFELT $ 6))))
                                     #3#)) . #11#)
                         (EXIT (SPADCALL
                                   (SPADCALL |f| (QCAR |vr|)
                                    (QREFELT $ 17))
                                   (SPADCALL |f| (QCDR |vr|)
                                    (QREFELT $ 17))
                                   (QREFELT $ 24)))))
                   ((QEQCAR (LETT |l|
                                  (SPADCALL |p| (QREFELT $ 26)) . #11#)
                            0)
                    (SPADCALL (ELT $ 27)
                        (PROGN
                          (LETT #4# NIL . #11#)
                          (SEQ (LETT |x| NIL . #11#)
                               (LETT #5#
                                     (PROG2 (LETT #7# |l| . #11#)
                                      (QCDR #7#)
                                       (|check-union| (QEQCAR #7# 0)
                                        (|List|
                                         (|Pattern| (QREFELT $ 6)))
                                        #7#)) . #11#)
                               G190
                               (COND
                                 ((OR (ATOM #5#)
                                      (PROGN
                                        (LETT |x| (CAR #5#) . #11#)
                                        NIL))
                                  #12#))
                               (SEQ (EXIT
                                     (LETT #4#
                                      (CONS
                                       (SPADCALL |f| |x|
                                        (QREFELT $ 17))
                                       #4#) . #11#)))
                               (LETT #5# (CDR #5#) . #11#) #13# G191
                               (EXIT (NREVERSE0 #4#))))
                        (QREFELT $ 30)))
                   ((QEQCAR (LETT |l|
                                  (SPADCALL |p| (QREFELT $ 31)) . #11#)
                            0)
                    (SPADCALL (ELT $ 32)
                        (PROGN
                          (LETT #6# NIL . #11#)
                          (SEQ (LETT |x| NIL . #11#)
                               (LETT #8#
                                     (PROG2 (LETT #7# |l| . #11#)
                                      (QCDR #7#)
                                       (|check-union| (QEQCAR #7# 0)
                                        (|List|
                                         (|Pattern| (QREFELT $ 6)))
                                        #7#)) . #11#)
                               G190
                               (COND
                                 ((OR (ATOM #8#)
                                      (PROGN
                                        (LETT |x| (CAR #8#) . #11#)
                                        NIL))
                                  #12#))
                               (SEQ (EXIT
                                     (LETT #6#
                                      (CONS
                                       (SPADCALL |f| |x|
                                        (QREFELT $ 17))
                                       #6#) . #11#)))
                               (LETT #8# (CDR #8#) . #11#) #13# G191
                               (EXIT (NREVERSE0 #6#))))
                        (QREFELT $ 30)))
                   ((QEQCAR (LETT |x|
                                  (SPADCALL |p| (QREFELT $ 35)) . #11#)
                            0)
                    (SEQ (LETT |xr|
                               (PROG2 (LETT #9# |x| . #11#) (QCDR #9#)
                                 (|check-union| (QEQCAR #9# 0)
                                     (|Record|
                                      (|:| |val|
                                       (|Pattern| (QREFELT $ 6)))
                                      (|:| |exponent|
                                       (|Pattern| (QREFELT $ 6))))
                                     #9#)) . #11#)
                         (EXIT (SPADCALL
                                   (SPADCALL |f| (QCAR |xr|)
                                    (QREFELT $ 17))
                                   (SPADCALL |f| (QCDR |xr|)
                                    (QREFELT $ 17))
                                   (QREFELT $ 36)))))
                   ((QEQCAR (LETT |w|
                                  (SPADCALL |p| (QREFELT $ 39)) . #11#)
                            0)
                    (SEQ (LETT |wr|
                               (PROG2 (LETT #10# |w| . #11#)
                                      (QCDR #10#)
                                 (|check-union| (QEQCAR #10# 0)
                                     (|Record|
                                      (|:| |val|
                                       (|Pattern| (QREFELT $ 6)))
                                      (|:| |exponent|
                                       (|NonNegativeInteger|)))
                                     #10#)) . #11#)
                         (EXIT (SPADCALL
                                   (SPADCALL |f| (QCAR |wr|)
                                    (QREFELT $ 17))
                                   (QCDR |wr|) (QREFELT $ 41)))))
                   ('T
                    (SEQ (LETT |sy|
                               (SPADCALL |p| (QREFELT $ 43)) . #11#)
                         (EXIT (SPADCALL (SPADCALL |sy| (QREFELT $ 44))
                                         (SPADCALL
                                          (SPADCALL |p| (QREFELT $ 46))
                                          (QREFELT $ 47))
                                         (QREFELT $ 48))))))))))) 

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

(DEFUN |PatternFunctions2;| (|#1| |#2|)
  (PROG (DV$1 DV$2 |dv$| $ |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|) . #0=(|PatternFunctions2|))
        (LETT DV$2 (|devaluate| |#2|) . #0#)
        (LETT |dv$| (LIST '|PatternFunctions2| DV$1 DV$2) . #0#)
        (LETT $ (GETREFV 49) . #0#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
        (|haddProp| |$ConstructorCache| '|PatternFunctions2|
            (LIST DV$1 DV$2) (CONS 1 $))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6 |#1|)
        (QSETREFV $ 7 |#2|)
        $)))) 

(MAKEPROP '|PatternFunctions2| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
             (|Union| 6 '"failed") (|Pattern| 6) (0 . |retractIfCan|)
             (|Pattern| 7) (5 . |coerce|)
             (|Record| (|:| |op| 18) (|:| |arg| 19))
             (|Union| 13 '"failed") (10 . |isOp|) (|Mapping| 7 6)
             |PATTERN2;map;MPP;1| (|BasicOperator|) (|List| $)
             (15 . |elt|) (|Record| (|:| |num| $) (|:| |den| $))
             (|Union| 21 '"failed") (21 . |isQuotient|) (26 . /)
             (|Union| 19 '"failed") (32 . |isPlus|) (37 . +)
             (|Mapping| 11 11 11) (|List| 11) (43 . |reduce|)
             (49 . |isTimes|) (54 . *)
             (|Record| (|:| |val| $) (|:| |exponent| $))
             (|Union| 33 '"failed") (60 . |isPower|) (65 . **)
             (|Record| (|:| |val| $) (|:| |exponent| 40))
             (|Union| 37 '"failed") (71 . |isExpt|)
             (|NonNegativeInteger|) (76 . **) (|Symbol|)
             (82 . |retract|) (87 . |coerce|) (|List| (|Any|))
             (92 . |predicates|) (97 . |copy|) (102 . |setPredicates|))
          '#(|map| 108) 'NIL
          (CONS (|makeByteWordVec2| 1 'NIL)
                (CONS '#()
                      (CONS '#()
                            (|makeByteWordVec2| 48
                                '(1 9 8 0 10 1 11 0 7 12 1 9 14 0 15 2
                                  11 0 18 19 20 1 9 22 0 23 2 11 0 0 0
                                  24 1 9 25 0 26 2 11 0 0 0 27 2 29 11
                                  28 0 30 1 9 25 0 31 2 11 0 0 0 32 1 9
                                  34 0 35 2 11 0 0 0 36 1 9 38 0 39 2
                                  11 0 0 40 41 1 9 42 0 43 1 11 0 42 44
                                  1 9 45 0 46 1 45 0 0 47 2 11 0 0 45
                                  48 2 0 11 16 9 17)))))
          '|lookupComplete|)) 
