
(/VERSIONCHECK 2) 

(PUT '|SEGBIND;equation;SS$;1| '|SPADreplace| 'CONS) 

(DEFUN |SEGBIND;equation;SS$;1| (|x| |s| $) (CONS |x| |s|)) 

(PUT '|SEGBIND;variable;$S;2| '|SPADreplace| 'QCAR) 

(DEFUN |SEGBIND;variable;$S;2| (|b| $) (QCAR |b|)) 

(PUT '|SEGBIND;segment;$S;3| '|SPADreplace| 'QCDR) 

(DEFUN |SEGBIND;segment;$S;3| (|b| $) (QCDR |b|)) 

(DEFUN |SEGBIND;=;2$B;4| (|b1| |b2| $)
  (COND
   ((EQUAL (SPADCALL |b1| (QREFELT $ 11)) (SPADCALL |b2| (QREFELT $ 11)))
    (SPADCALL (SPADCALL |b1| (QREFELT $ 12)) (SPADCALL |b2| (QREFELT $ 12))
              (QREFELT $ 14)))
   ('T 'NIL))) 

(DEFUN |SEGBIND;coerce;$Of;5| (|b| $)
  (SPADCALL (SPADCALL (SPADCALL |b| (QREFELT $ 11)) (QREFELT $ 17))
            (SPADCALL (SPADCALL |b| (QREFELT $ 12)) (QREFELT $ 18))
            (QREFELT $ 19))) 

(DEFUN |SEGBIND;convert;$If;6| (|b| $)
  (SPADCALL '|equation|
            (LIST (SPADCALL (SPADCALL |b| (QREFELT $ 11)) (QREFELT $ 22))
                  (SPADCALL (SPADCALL |b| (QREFELT $ 12)) (QREFELT $ 23)))
            (QREFELT $ 26))) 

(DEFUN |SegmentBinding| (#1=#:G1826)
  (PROG ()
    (RETURN
     (PROG (#2=#:G1827)
       (RETURN
        (COND
         ((LETT #2#
                (|lassocShiftWithFunction| (LIST (|devaluate| #1#))
                                           (HGET |$ConstructorCache|
                                                 '|SegmentBinding|)
                                           '|domainEqualList|)
                . #3=(|SegmentBinding|))
          (|CDRwithIncrement| #2#))
         ('T
          (UNWIND-PROTECT (PROG1 (|SegmentBinding;| #1#) (LETT #2# T . #3#))
            (COND
             ((NOT #2#) (HREM |$ConstructorCache| '|SegmentBinding|))))))))))) 

(DEFUN |SegmentBinding;| (|#1|)
  (PROG (|pv$| $ |dv$| DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #1=(|SegmentBinding|))
      (LETT |dv$| (LIST '|SegmentBinding| DV$1) . #1#)
      (LETT $ (GETREFV 30) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3
                (LETT |pv$|
                      (|buildPredVector| 0 0
                                         (LIST
                                          (|HasCategory| |#1|
                                                         '(|ConvertibleTo|
                                                           (|InputForm|)))
                                          (|HasCategory| |#1|
                                                         '(|SetCategory|))))
                      . #1#))
      (|haddProp| |$ConstructorCache| '|SegmentBinding| (LIST DV$1) (CONS 1 $))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (SETF |pv$| (QREFELT $ 3))
      (QSETREFV $ 7
                (|Record| (|:| |var| (|Symbol|)) (|:| |seg| (|Segment| |#1|))))
      (COND
       ((|testBitVector| |pv$| 2)
        (PROGN
         (QSETREFV $ 15 (CONS (|dispatchFunction| |SEGBIND;=;2$B;4|) $))
         (QSETREFV $ 20
                   (CONS (|dispatchFunction| |SEGBIND;coerce;$Of;5|) $)))))
      (COND
       ((|testBitVector| |pv$| 1)
        (PROGN
         (QSETREFV $ 27
                   (CONS (|dispatchFunction| |SEGBIND;convert;$If;6|) $)))))
      $)))) 

(MAKEPROP '|SegmentBinding| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) '|Rep| (|Symbol|)
              (|Segment| 6) |SEGBIND;equation;SS$;1| |SEGBIND;variable;$S;2|
              |SEGBIND;segment;$S;3| (|Boolean|) (0 . =) (6 . =) (|OutputForm|)
              (12 . |coerce|) (17 . |coerce|) (22 . =) (28 . |coerce|)
              (|InputForm|) (33 . |convert|) (38 . |convert|) (|List| 21)
              (|InputFormFunctions1| $$) (43 . |packageCall|) (49 . |convert|)
              (|SingleInteger|) (|String|))
           '#(~= 54 |variable| 60 |segment| 65 |latex| 70 |hash| 75 |equation|
              80 |convert| 86 |coerce| 91 = 96)
           'NIL
           (CONS (|makeByteWordVec2| 2 '(2 0 1 2 2))
                 (CONS '#(|SetCategory&| NIL NIL |BasicType&| NIL)
                       (CONS
                        '#((|SetCategory|) (|Type|) (|ConvertibleTo| 21)
                           (|BasicType|) (|CoercibleTo| 16))
                        (|makeByteWordVec2| 29
                                            '(2 9 13 0 0 14 2 0 13 0 0 15 1 8
                                              16 0 17 1 9 16 0 18 2 16 0 0 0 19
                                              1 0 16 0 20 1 21 0 8 22 1 9 21 0
                                              23 2 25 21 8 24 26 1 0 21 0 27 2
                                              2 13 0 0 1 1 0 8 0 11 1 0 9 0 12
                                              1 2 29 0 1 1 2 28 0 1 2 0 0 8 9
                                              10 1 1 21 0 27 1 2 16 0 20 2 2 13
                                              0 0 15)))))
           '|lookupComplete|)) 
