
(/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 |SegmentBinding| (#0=#:G1825)
  (PROG ()
    (RETURN
      (PROG (#1=#:G1826)
        (RETURN
          (COND
            ((LETT #1#
                   (|lassocShiftWithFunction| (LIST (|devaluate| #0#))
                       (HGET |$ConstructorCache| '|SegmentBinding|)
                       '|domainEqualList|)
                   . #2=(|SegmentBinding|))
             (|CDRwithIncrement| #1#))
            ('T
             (UNWIND-PROTECT
               (PROG1 (|SegmentBinding;| #0#) (LETT #1# T . #2#))
               (COND
                 ((NOT #1#)
                  (HREM |$ConstructorCache| '|SegmentBinding|))))))))))) 

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

(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|) (|SingleInteger|)
             (|String|))
          '#(~= 33 |variable| 39 |segment| 44 |latex| 49 |hash| 54
             |equation| 59 |coerce| 65 = 70)
          'NIL
          (CONS (|makeByteWordVec2| 1 '(1 0 1 1))
                (CONS '#(|SetCategory&| NIL |BasicType&| NIL)
                      (CONS '#((|SetCategory|) (|Type|) (|BasicType|)
                               (|CoercibleTo| 16))
                            (|makeByteWordVec2| 22
                                '(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 2 1 13 0 0 1 1 0 8 0 11 1 0 9 0 12
                                  1 1 22 0 1 1 1 21 0 1 2 0 0 8 9 10 1
                                  1 16 0 20 2 1 13 0 0 15)))))
          '|lookupComplete|)) 
