diff --git a/books/bookvol10.2.pamphlet b/books/bookvol10.2.pamphlet
index 1b82f31..bcd70d9 100644
--- a/books/bookvol10.2.pamphlet
+++ b/books/bookvol10.2.pamphlet
@@ -76807,7 +76807,7 @@ Note that this code is not included in the generated catdef.spad file.
       (PROGN 
         (LETT |DV$1| (|devaluate| |#1|) . #1=(|AbelianGroup&|))
         (LETT |dv$| (LIST (QUOTE |AbelianGroup&|) |DV$1|) . #1#)
-        (LETT |$| (GETREFV 22) . #1#)
+        (LETT |$| (make-array 22) . #1#)
         (QSETREFV |$| 0 |dv$|)
         (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
         (|stuffDomainSlots| |$|)
@@ -76959,7 +76959,7 @@ Note that this code is not included in the generated catdef.spad file.
       (PROGN 
         (LETT |DV$1| (|devaluate| |#1|) . #1=(|AbelianMonoid&|))
         (LETT |dv$| (LIST (QUOTE |AbelianMonoid&|) |DV$1|) . #1#)
-        (LETT |$| (GETREFV 19) . #1#)
+        (LETT |$| (make-array 19) . #1#)
         (QSETREFV |$| 0 |dv$|)
         (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
         (|stuffDomainSlots| |$|)
@@ -77091,7 +77091,7 @@ Note that this code is not included in the generated catdef.spad file.
       (PROGN 
         (LETT |DV$1| (|devaluate| |#1|) . #1=(|AbelianSemiGroup&|))
         (LETT |dv$| (LIST (QUOTE |AbelianSemiGroup&|) |DV$1|) . #1#)
-        (LETT |$| (GETREFV 11) . #1#)
+        (LETT |$| (make-array 11) . #1#)
         (QSETREFV |$| 0 |dv$|)
         (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
         (|stuffDomainSlots| |$|)
@@ -77481,7 +77481,7 @@ Note that this code is not included in the generated catdef.spad file.
     (LETT |DV$1| (|devaluate| |#1|) . #1=(|Collection&|))
     (LETT |DV$2| (|devaluate| |#2|) . #1#)
     (LETT |dv$| (LIST (QUOTE |Collection&|) |DV$1| |DV$2|) . #1#)
-    (LETT |$| (GETREFV 37) . #1#)
+    (LETT |$| (make-array 37) . #1#)
     (QSETREFV |$| 0 |dv$|)
     (QSETREFV |$| 3 
      (LETT |pv$| 
@@ -77682,7 +77682,7 @@ Note that this code is not included in the generated catdef.spad file.
       (PROGN 
         (LETT |DV$1| (|devaluate| |#1|) . #1=(|DifferentialRing&|))
         (LETT |dv$| (LIST (QUOTE |DifferentialRing&|) |DV$1|) . #1#)
-        (LETT |$| (GETREFV 13) . #1#)
+        (LETT |$| (make-array 13) . #1#)
         (QSETREFV |$| 0 |dv$|)
         (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
         (|stuffDomainSlots| |$|)
@@ -77809,7 +77809,7 @@ Note that this code is not included in the generated catdef.spad file.
       (PROGN 
         (LETT |DV$1| (|devaluate| |#1|) . #1=(|DivisionRing&|))
         (LETT |dv$| (LIST (QUOTE |DivisionRing&|) |DV$1|) . #1#)
-        (LETT |$| (GETREFV 27) . #1#)
+        (LETT |$| (make-array 27) . #1#)
         (QSETREFV |$| 0 |dv$|)
         (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
         (|stuffDomainSlots| |$|)
@@ -78645,7 +78645,7 @@ Note that this code is not included in the generated catdef.spad file.
    (PROGN
     (LETT |DV$1| (|devaluate| |#1|) . #1=(|ExpressionSpace&|))
     (LETT |dv$| (LIST (QUOTE |ExpressionSpace&|) |DV$1|) . #1#)
-    (LETT |$| (GETREFV 131) . #1#)
+    (LETT |$| (make-array 131) . #1#)
     (QSETREFV |$| 0 |dv$|)
     (QSETREFV |$| 3 
      (LETT |pv$| 
@@ -79340,7 +79340,7 @@ recompiling.
    (PROGN 
     (LETT DV$1 (|devaluate| |#1|) . #0=(|EuclideanDomain&|))
     (LETT |dv$| (LIST (QUOTE |EuclideanDomain&|) DV$1) . #0#)
-    (LETT $ (GETREFV 53) . #0#)
+    (LETT $ (make-array 53) . #0#)
     (QSETREFV $ 0 |dv$|)
     (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
     (|stuffDomainSlots| $)
@@ -80014,7 +80014,7 @@ Note that this code is not included in the generated catdef.spad file.
    (PROGN
     (LETT |DV$1| (|devaluate| |#1|) . #1=(|FiniteFieldCategory&|))
     (LETT |dv$| (LIST (QUOTE |FiniteFieldCategory&|) |DV$1|) . #1#)
-    (LETT |$| (GETREFV 93) . #1#)
+    (LETT |$| (make-array 93) . #1#)
     (QSETREFV |$| 0 |dv$|)
     (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
     (|stuffDomainSlots| |$|)
@@ -80188,7 +80188,7 @@ Note that this code is not included in the generated catdef.spad file.
       (PROGN 
         (LETT |DV$1| (|devaluate| |#1|) . #1=(|FloatingPointSystem&|))
         (LETT |dv$| (LIST (QUOTE |FloatingPointSystem&|) |DV$1|) . #1#)
-        (LETT |$| (GETREFV 17) . #1#)
+        (LETT |$| (make-array 17) . #1#)
         (QSETREFV |$| 0 |dv$|)
         (QSETREFV |$| 3 
           (LETT |pv$| 
@@ -80494,7 +80494,7 @@ Note that this code is not included in the generated catdef.spad file.
       (PROGN 
         (LETT |DV$1| (|devaluate| |#1|) . #1=(|GcdDomain&|))
         (LETT |dv$| (LIST (QUOTE |GcdDomain&|) |DV$1|) . #1#)
-        (LETT |$| (GETREFV 42) . #1#)
+        (LETT |$| (make-array 42) . #1#)
         (QSETREFV |$| 0 |dv$|)
         (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
         (|stuffDomainSlots| |$|)
@@ -80868,7 +80868,7 @@ Note that this code is not included in the generated catdef.spad file.
     (LETT |DV$1| (|devaluate| |#1|) . #1=(|HomogeneousAggregate&|))
     (LETT |DV$2| (|devaluate| |#2|) . #1#)
     (LETT |dv$| (LIST (QUOTE |HomogeneousAggregate&|) |DV$1| |DV$2|) . #1#)
-    (LETT |$| (GETREFV 38) . #1#)
+    (LETT |$| (make-array 38) . #1#)
     (QSETREFV |$| 0 |dv$|)
     (QSETREFV |$| 3
      (LETT |pv$|
@@ -81295,7 +81295,7 @@ This is eventually forcibly replaced by a recompiled version.
       (PROGN 
         (LETT DV$1 (|devaluate| |#1|) . #0=(|IntegerNumberSystem&|))
         (LETT |dv$| (LIST (QUOTE |IntegerNumberSystem&|) DV$1) . #0#)
-        (LETT $ (GETREFV 87) . #0#)
+        (LETT $ (make-array 87) . #0#)
         (QSETREFV $ 0 |dv$|)
         (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
         (|stuffDomainSlots| $)
@@ -81525,7 +81525,7 @@ Note that this code is not included in the generated catdef.spad file.
       (PROGN 
         (LETT |DV$1| (|devaluate| |#1|) . #1=(|IntegralDomain&|))
         (LETT |dv$| (LIST (QUOTE |IntegralDomain&|) |DV$1|) . #1#)
-        (LETT |$| (GETREFV 21) . #1#)
+        (LETT |$| (make-array 21) . #1#)
         (QSETREFV |$| 0 |dv$|)
         (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
         (|stuffDomainSlots| |$|)
@@ -81714,7 +81714,7 @@ Note that this code is not included in the generated catdef.spad file.
     (LETT |DV$1| (|devaluate| |#1|) . #1=(|LinearAggregate&|))
     (LETT |DV$2| (|devaluate| |#2|) . #1#)
     (LETT |dv$| (LIST (QUOTE |LinearAggregate&|) |DV$1| |DV$2|) . #1#)
-    (LETT |$| (GETREFV 25) . #1#)
+    (LETT |$| (make-array 25) . #1#)
     (QSETREFV |$| 0 |dv$|)
     (QSETREFV |$| 3
      (LETT |pv$|
@@ -82598,7 +82598,7 @@ Note that this code is not included in the generated catdef.spad file.
     (LETT |DV$1| (|devaluate| |#1|) . #1=(|ListAggregate&|))
     (LETT |DV$2| (|devaluate| |#2|) . #1#)
     (LETT |dv$| (LIST (QUOTE |ListAggregate&|) |DV$1| |DV$2|) . #1#)
-    (LETT |$| (GETREFV 66) . #1#)
+    (LETT |$| (make-array 66) . #1#)
     (QSETREFV |$| 0 |dv$|)
     (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
     (|stuffDomainSlots| |$|)
@@ -82752,7 +82752,7 @@ Note that this code is not included in the generated catdef.spad file.
       (PROGN 
         (LETT |DV$1| (|devaluate| |#1|) . #1=(|Monoid&|))
         (LETT |dv$| (LIST (QUOTE |Monoid&|) |DV$1|) . #1#)
-        (LETT |$| (GETREFV 22) . #1#)
+        (LETT |$| (make-array 22) . #1#)
         (QSETREFV |$| 0 |dv$|)
         (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
         (|stuffDomainSlots| |$|)
@@ -83018,7 +83018,7 @@ Note that this code is not included in the generated catdef.spad file.
       (PROGN 
         (LETT |DV$1| (|devaluate| |#1|) . #1=(|OrderedRing&|))
         (LETT |dv$| (LIST (QUOTE |OrderedRing&|) |DV$1|) . #1#)
-        (LETT |$| (GETREFV 20) . #1#)
+        (LETT |$| (make-array 20) . #1#)
         (QSETREFV |$| 0 |dv$|)
         (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
         (|stuffDomainSlots| |$|)
@@ -84122,7 +84122,7 @@ Note that this code is not included in the generated catdef.spad file.
            (CONS 0
             (PRIMVEC2ARR
              (PROGN
-              (LETT #15# (GETREFV (SIZE |monslist|)) 
+              (LETT #15# (make-array (SIZE |monslist|)) 
                |POLYCAT-;conditionP;MU;27|)
               (SEQ
                (LETT #16# 0 |POLYCAT-;conditionP;MU;27|)
@@ -84449,7 +84449,7 @@ Note that this code is not included in the generated catdef.spad file.
     (LETT DV$3 (|devaluate| |#3|) . #0#)
     (LETT DV$4 (|devaluate| |#4|) . #0#)
     (LETT |dv$| (LIST (QUOTE |PolynomialCategory&|) DV$1 DV$2 DV$3 DV$4) . #0#)
-    (LETT $ (GETREFV 226) . #0#)
+    (LETT $ (make-array 226) . #0#)
     (QSETREFV $ 0 |dv$|)
     (QSETREFV $ 3
      (LETT |pv$| 
@@ -85568,7 +85568,7 @@ Note that this code is not included in the generated catdef.spad file.
      (LIST
       (QUOTE |PolynomialSetCategory&|)
       |DV$1| |DV$2| |DV$3| |DV$4| |DV$5|) . #1#)
-    (LETT |$| (GETREFV 90) . #1#)
+    (LETT |$| (make-array 90) . #1#)
     (QSETREFV |$| 0 |dv$|)
     (QSETREFV |$| 3
      (LETT |pv$|
@@ -86004,7 +86004,7 @@ Note that this code is not included in the generated catdef.spad file.
     (LETT |DV$1| (|devaluate| |#1|) . #1=(|QuotientFieldCategory&|))
     (LETT |DV$2| (|devaluate| |#2|) . #1#)
     (LETT |dv$| (LIST (QUOTE |QuotientFieldCategory&|) |DV$1| |DV$2|) . #1#)
-    (LETT |$| (GETREFV 119) . #1#)
+    (LETT |$| (make-array 119) . #1#)
     (QSETREFV |$| 0 |dv$|)
     (QSETREFV |$| 3
      (LETT |pv$|
@@ -86266,7 +86266,7 @@ Note that this code is not included in the generated catdef.spad file.
     (LETT |DV$1| (|devaluate| |#1|) . #1=(|RecursiveAggregate&|))
     (LETT |DV$2| (|devaluate| |#2|) . #1#)
     (LETT |dv$| (LIST (QUOTE |RecursiveAggregate&|) |DV$1| |DV$2|) . #1#)
-    (LETT |$| (GETREFV 19) . #1#)
+    (LETT |$| (make-array 19) . #1#)
     (QSETREFV |$| 0 |dv$|)
     (QSETREFV |$| 3
      (LETT |pv$|
@@ -86373,7 +86373,7 @@ Note that this code is not included in the generated catdef.spad file.
       (PROGN 
         (LETT |DV$1| (|devaluate| |#1|) . #1=(|Ring&|))
         (LETT |dv$| (LIST (QUOTE |Ring&|) |DV$1|) . #1#)
-        (LETT |$| (GETREFV 12) . #1#)
+        (LETT |$| (make-array 12) . #1#)
         (QSETREFV |$| 0 |dv$|)
         (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
         (|stuffDomainSlots| |$|)
@@ -86631,7 +86631,7 @@ Note that this code is not included in the generated catdef.spad file.
       (PROGN 
         (LETT |DV$1| (|devaluate| |#1|) . #1=(|RealNumberSystem&|))
         (LETT |dv$| (LIST (QUOTE |RealNumberSystem&|) |DV$1|) . #1#)
-        (LETT |$| (GETREFV 52) . #1#)
+        (LETT |$| (make-array 52) . #1#)
         (QSETREFV |$| 0 |dv$|)
         (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
         (|stuffDomainSlots| |$|)
@@ -86813,7 +86813,7 @@ Note that this code is not included in the generated catdef.spad file.
     (LETT |DV$1| (|devaluate| |#1|) . #1=(|SetAggregate&|))
     (LETT |DV$2| (|devaluate| |#2|) . #1#)
     (LETT |dv$| (LIST (QUOTE |SetAggregate&|) |DV$1| |DV$2|) . #1#)
-    (LETT |$| (GETREFV 16) . #1#)
+    (LETT |$| (make-array 16) . #1#)
     (QSETREFV |$| 0 |dv$|)
     (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
     (|stuffDomainSlots| |$|)
@@ -86934,7 +86934,7 @@ Note that this code is not included in the generated catdef.spad file.
      (PROGN 
        (LETT |DV$1| (|devaluate| |#1|) . #1=(|SetCategory&|))
        (LETT |dv$| (LIST (QUOTE |SetCategory&|) |DV$1|) . #1#)
-       (LETT |$| (GETREFV 11) . #1#)
+       (LETT |$| (make-array 11) . #1#)
        (QSETREFV |$| 0 |dv$|)
        (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
        (|stuffDomainSlots| |$|)
@@ -87284,7 +87284,7 @@ Note that this code is not included in the generated catdef.spad file.
     (LETT |DV$1| (|devaluate| |#1|) . #1=(|StreamAggregate&|))
     (LETT |DV$2| (|devaluate| |#2|) . #1#)
     (LETT |dv$| (LIST (QUOTE |StreamAggregate&|) |DV$1| |DV$2|) . #1#)
-    (LETT |$| (GETREFV 51) . #1#)
+    (LETT |$| (make-array 51) . #1#)
     (QSETREFV |$| 0 |dv$|)
     (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
     (|stuffDomainSlots| |$|)
@@ -88373,7 +88373,7 @@ Note that this code is not included in the generated catdef.spad file.
     (LETT DV$5 (|devaluate| |#5|) . #0#)
     (LETT |dv$|
      (LIST (QUOTE |TriangularSetCategory&|) DV$1 DV$2 DV$3 DV$4 DV$5) . #0#)
-    (LETT $ (GETREFV 131) . #0#)
+    (LETT $ (make-array 131) . #0#)
     (QSETREFV $ 0 |dv$|)
     (QSETREFV $ 3
      (LETT |pv$|
@@ -88615,7 +88615,7 @@ Note that this code is not included in the generated catdef.spad file.
       (PROGN 
         (LETT |DV$1| (|devaluate| |#1|) . #1=(|UniqueFactorizationDomain&|))
         (LETT |dv$| (LIST (QUOTE |UniqueFactorizationDomain&|) |DV$1|) . #1#)
-        (LETT |$| (GETREFV 24) . #1#)
+        (LETT |$| (make-array 24) . #1#)
         (QSETREFV |$| 0 |dv$|)
         (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
         (|stuffDomainSlots| |$|)
@@ -89905,7 +89905,7 @@ Note that this code is not included in the generated catdef.spad file.
         (LETT |DV$2| (|devaluate| |#2|) . #1#)
         (LETT |dv$| 
           (LIST (QUOTE |UnivariatePolynomialCategory&|) |DV$1| |DV$2|) . #1#)
-        (LETT |$| (GETREFV 201) . #1#)
+        (LETT |$| (make-array 201) . #1#)
         (QSETREFV |$| 0 |dv$|)
         (QSETREFV |$| 3 
           (LETT |pv$| 
@@ -90966,7 +90966,7 @@ Note that this code is not included in the generated catdef.spad file.
     (LETT |DV$1| (|devaluate| |#1|) . #1=(|UnaryRecursiveAggregate&|))
     (LETT |DV$2| (|devaluate| |#2|) . #1#)
     (LETT |dv$| (LIST (QUOTE |UnaryRecursiveAggregate&|) |DV$1| |DV$2|) . #1#)
-    (LETT |$| (GETREFV 66) . #1#)
+    (LETT |$| (make-array 66) . #1#)
     (QSETREFV |$| 0 |dv$|)
     (QSETREFV |$| 3
      (LETT |pv$|
diff --git a/books/bookvol4.pamphlet b/books/bookvol4.pamphlet
index ebd5476..87e67cc 100644
--- a/books/bookvol4.pamphlet
+++ b/books/bookvol4.pamphlet
@@ -4583,7 +4583,7 @@ code:
   (RETURN
    (PROGN
     (LETT |dv$| (QUOTE (|Any|)) . #0=(|Any|))
-    (LETT $ (GETREFV 35) . #0#)
+    (LETT $ (make-array 35) . #0#)
     (QSETREFV $ 0 |dv$|)
     (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
     (|haddProp| |$ConstructorCache| (QUOTE |Any|) NIL (CONS 1 $))
diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet
index e6ef99f..7e34eb5 100644
--- a/books/bookvol5.pamphlet
+++ b/books/bookvol5.pamphlet
@@ -8629,7 +8629,8 @@ the original Macro pform.
   (setq ex (assoc (|pfIdSymbol| pform) replist :test #'eq))
   (cond
     (ex 
-     (rplpair pform (cdr ex))
+     (rplaca pform (cadr ex))
+     (rplacd pform (cddr ex))
      pform)
     (t pform))))
 
@@ -19405,9 +19406,6 @@ current information is recorded. If there are more frame elements
 in the list then this will destructively move the current frame
 to the end of the list, that is, assume the frame list reads (1 2 3)
 this function will destructively change it to (2 3 1).
-Note: the nconc2 function destructively inserts the second list at the
-end of the first.
-\calls{nextInterpreterFrame}{nconc2}
 \calls{nextInterpreterFrame}{updateFromCurrentInterpreterFrame}
 \usesdollar{nextInterpreterFrame}{interpreterFrameRing}
 \begin{chunk}{defun nextInterpreterFrame}
@@ -19416,8 +19414,7 @@ end of the first.
   (declare (special |$interpreterFrameRing|))
   (when (cdr |$interpreterFrameRing|)
    (setq |$interpreterFrameRing|
-    (nconc2 (cdr |$interpreterFrameRing|) 
-      (list (car |$interpreterFrameRing|))))
+    (nconc (cdr |$interpreterFrameRing|) (list (car |$interpreterFrameRing|))))
    (|updateFromCurrentInterpreterFrame|)))
 
 \end{chunk}
@@ -19443,7 +19440,6 @@ end of the first.
 \defunsec{previousInterpreterFrame}
 {Move to the previous Interpreter Frame in Ring}
 \calls{previousInterpreterFrame}{updateCurrentInterpreterFrame}
-\calls{previousInterpreterFrame}{nconc2}
 \calls{previousInterpreterFrame}{updateFromCurrentInterpreterFrame}
 \usesdollar{previousInterpreterFrame}{interpreterFrameRing}
 \begin{chunk}{defun previousInterpreterFrame}
@@ -19456,7 +19452,7 @@ end of the first.
     (setq tmp1 (reverse |$interpreterFrameRing|))
     (setq l (car tmp1))
     (setq b (nreverse (cdr tmp1)))
-    (setq |$interpreterFrameRing| (nconc2 (cons l nil) b))
+    (setq |$interpreterFrameRing| (nconc (cons l nil) b))
     (|updateFromCurrentInterpreterFrame|))))
 
 \end{chunk}
@@ -32442,14 +32438,17 @@ to convert the data into type "Expression"
 \end{chunk}
 
 \defun{remover}{remover}
-\calls{remover}{rplnode}
 \calls{remover}{remover}
 \begin{chunk}{defun remover}
 (defun remover (lst item)
  (cond
   ((null (consp lst)) (cond ((equal lst item) nil) (t lst)))
   ((equal (car lst) item) (cdr lst))
-  (t (rplnode lst (remover (car lst) item) (remover (cdr lst) item)))))
+  (t
+   (rplnode lst (remover (car lst) item) (remover (cdr lst) item))
+   (rplaca lst (remover (car lst) item))
+   (rplacd lst (remover (cdr lst) item))
+   lst)))
 
 \end{chunk}
 
@@ -38064,6 +38063,42 @@ but the Axiom semantics are not the same. Because Axiom was originally
 written in Maclisp, then VMLisp, and then Common Lisp some of these old
 semantics survive. 
 
+\section{U32Vector}
+\defun{getrefv32}{getrefv32}
+\begin{chunk}{defun getrefv32}
+(defun getrefv32 (n x)
+ (make-array n :initial-element x :element-type '(unsigned-byte 32)))
+
+\end{chunk}
+
+\defmacro{qv32len}
+\begin{chunk}{defmacro qv32len}
+(defmacro qv32len (v)
+ `(length (the (simple-array (unsigned-byte 32) (*)) ,v)))
+
+\end{chunk}
+
+\defmacro{elt32}
+\begin{chunk}{defmacro elt32}
+(defmacro elt32 (v i)
+ `(aref (the (simple-array (unsigned-byte 32) (*)) ,v) ,i))
+
+\end{chunk}
+
+\defmacro{setelt32}
+\begin{chunk}{defmacro setelt32}
+(defmacro setelt32 (v i s)
+ `(setf (aref (the (simple-array (unsigned-byte 32) (*)) ,v) ,i), s))
+
+\end{chunk}
+
+\section{DirectProduct}
+\defun{vec2list}{vec2list}
+\begin{chunk}{defun vec2list}
+(defun vec2list (vec) (coerce vec 'list))
+
+\end{chunk}
+
 \section{AlgebraicFunction}
 \defun{retract}{retract}
 \calls{retract}{objMode}
@@ -39530,6 +39565,96 @@ See Steele Common Lisp 1990 pp305-307
 
 \end{chunk}
 
+\chapter{OpenMath stub functions}
+\section{Lisp conversion functions}
+The lisp conversion functions are:
+\begin{itemize}
+\item (toDev LispObject) $->$ OMdev
+\item (fromDev OMdev) $->$ LispObject
+\item (toStatus LispObject) $->$ LispObject
+\item (fromStatus OMstatus) $->$ LispObject
+\item (toEncodingType LispObject) $->$ OMencodingType
+\item (fromEncodingType OMencodingType) $->$ LispObject
+\item (toBigNumStr LispObject) $->$ char *
+\item (fromBigNumStr(char *,int,int, OMbigIntType) $->$ LispObject
+\item (toConn LispObject) $->$ OMconn
+\item (fromConn OMconn) $->$ LispObject
+\item (toCString LispObject) $->$ char **
+\item (fromCString char **) $->$ LispObject
+\item (lispStringFromCString LispObject) $->$ LispObject
+\item (cStringFromLispString LispObject) $->$ LispObject
+\end{itemize}
+
+\section{Device manipulation functions}
+\begin{itemize}
+\item openFileDev(LispObject, ints, ...) $->$ LispObject
+\item openStrDev(LispObject, LispObject, LispObject) $->$ LispObject
+\item closeDev(LispObject, LispObject) $->$ LispObject
+\end{itemize}
+
+\section{Connection manipulation functions}
+\begin{itemize}
+\item makeConn(LispObject, LispObject) $->$ LispObject
+\item closeConn(LispObject, LispObject) $->$ LispObject
+\item getConnInDev(LispObject, LispObject) $->$ LispObject
+\item getConnOutDev(LispObject, LispObject) $->$ LispObject
+\end{itemize}
+
+\section{Client/Server functions}
+See OMconn.h
+\begin{itemize}
+\item connectTCP(LispObject, int, ...) $->$ LispObject
+\item bindTCP(LispObject, LispObject, LispObject) $->$ LispObject
+\end{itemize}
+
+\section{Device input/output functions}
+\begin{itemize}
+\item putApp(LispObject, LispObject) $->$ LispObject
+\item putEndApp(LispObject, LispObject) $->$ LispObject
+\item putAtp(LispObject, LispObject) $->$ LispObject
+\item putEndAtp(LispObject, LispObject) $->$ LispObject
+\item putAttr(LispObject, LispObject) $->$ LispObject
+\item putEndAttr(LispObject, LispObject) $->$ LispObject
+\item putBind(LispObject, LispObject) $->$ LispObject
+\item putEndBind(LispObject, LispObject) $->$ LispObject
+\item putBVar(LispObject, LispObject) $->$ LispObject
+\item putEndBVar(LispObject, LispObject) $->$ LispObject
+\item putError(LispObject, LispObject) $->$ LispObject
+\item putEndError(LispObject, LispObject) $->$ LispObject
+\item putObject(LispObject, LispObject) $->$ LispObject
+\item putEndObject(LispObject, LispObject) $->$ LispObject
+\item putInt(LispObject, LispObject, LispObject) $->$ LispObject
+\item putFloat(LispObject, LispObject, LispObject) $->$ LispObject
+\item putByteArray(LispObject, LispObject, LispObject) $->$ LispObject
+\item putVar(LispObject, LispObject, LispObject) $->$ LispObject
+\item putString(LispObject, LispObject, LispObject) $->$ LispObject
+\item putSymbol(LispObject, LispObject, LispObject) $->$ LispObject
+\item putSymbol2(LispObject, int nargs, ...) $->$ LispObject
+\item getApp(LispObject, LispObject) $->$ LispObject
+\item getEndApp(LispObject, LispObject) $->$ LispObject
+\item getAtp(LispObject, LispObject) $->$ LispObject
+\item getEndAtp(LispObject, LispObject) $->$ LispObject
+\item getAttr(LispObject, LispObject) $->$ LispObject
+\item getEndAttr(LispObject, LispObject) $->$ LispObject
+\item getBind(LispObject, LispObject) $->$ LispObject
+\item getEndBind(LispObject, LispObject) $->$ LispObject
+\item getBVar(LispObject, LispObject) $->$ LispObject
+\item getEndBVar(LispObject, LispObject) $->$ LispObject
+\item getError(LispObject, LispObject) $->$ LispObject
+\item getEndError(LispObject, LispObject) $->$ LispObject
+\item getObject(LispObject, LispObject) $->$ LispObject
+\item getEndObject(LispObject, LispObject) $->$ LispObject
+\item getInt(LispObject, LispObject) $->$ LispObject
+\item getFloat(LispObject, LispObject) $->$ LispObject
+\item getByteArray(LispObject, LispObject) $->$ LispObject
+\item getVar(LispObject, LispObject) $->$ LispObject
+\item getString(LispObject, LispObject) $->$ LispObject
+\item getSymbol(LispObject, LispObject) $->$ LispObject
+\item getType(LispObject, LispObject) $->$ LispObject
+\item stringToStringPtr(LispObject, LispObject) $->$ LispObject
+\item stringPtrToString(LispObject, LispObject) $->$ LispObject
+\end{itemize}
+
 \chapter{NRLIB code.lisp support code}
 
 \defun{makeByteWordVec2}{makeByteWordVec2}
@@ -40578,6 +40703,7 @@ This needs to work off the internal exposure list, not the file.
 \getchunk{defmacro dlen}
 \getchunk{defmacro dsetaref2}
 \getchunk{defmacro dsetelt}
+\getchunk{defmacro elt32}
 \getchunk{defmacro funfind}
 \getchunk{defmacro hget}
 \getchunk{defmacro make-cdouble-matrix}
@@ -40586,8 +40712,10 @@ This needs to work off the internal exposure list, not the file.
 \getchunk{defmacro make-double-matrix1}
 \getchunk{defmacro make-double-vector}
 \getchunk{defmacro make-double-vector1}
+\getchunk{defmacro qv32len}
 \getchunk{defmacro Rest}
 \getchunk{defmacro startsId?}
+\getchunk{defmacro setelt32}
 \getchunk{defmacro trapNumericErrors}
 \getchunk{defmacro truth-to-bit}
 \getchunk{defmacro while}
@@ -41064,6 +41192,7 @@ This needs to work off the internal exposure list, not the file.
 \getchunk{defun getPosStL}
 \getchunk{defun getPreviousMapSubNames}
 \getchunk{defun getProplist}
+\getchunk{defun getrefv32}
 \getchunk{defun getStFromMsg}
 \getchunk{defun getSystemCommandLine}
 \getchunk{defun getTraceOption}
@@ -41957,6 +42086,7 @@ This needs to work off the internal exposure list, not the file.
 \getchunk{defun userLevelErrorMessage}
 
 \getchunk{defun validateOutputDirectory}
+\getchunk{defun vec2list}
 
 \getchunk{defun what}
 \getchunk{defun whatCommands}
diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet
index c5af8fd..87601f9 100644
--- a/books/bookvol9.pamphlet
+++ b/books/bookvol9.pamphlet
@@ -921,7 +921,7 @@ each of which we will explain in detail below.
       (PROGN
         (LETT DV$1 (|devaluate| |#1|) |Equation|)
         (LETT |dv$| (LIST '|Equation| DV$1) |Equation|)
-        (LETT $ (GETREFV 98) |Equation|)
+        (LETT $ (make-array 98) |Equation|)
         (QSETREFV $ 0 |dv$|)
         (QSETREFV $ 3
             (LETT |pv$|
@@ -1598,7 +1598,7 @@ By default, Axiom uses Gnu Common Lisp (GCL), which generates ``.o'' files.
           BOOT::|dispatchFunction| BOOT::|testBitVector| COND
           BOOT::|Record0| BOOT::|Record| BOOT::|stuffDomainSlots| CONS
           BOOT::|haddProp| BOOT::|HasCategory| BOOT::|buildPredVector|
-          SYSTEM:SVSET SETF VMLISP:QSETREFV VMLISP:GETREFV LIST
+          SYSTEM:SVSET SETF VMLISP:QSETREFV LIST
           BOOT::|devaluate| BOOT::LETT RETURN)
       RETURN-TYPE NIL ARG-TYPES (T) NO-EMIT NIL MACROS
       (BOOT::|dispatchFunction| COND BOOT::|Record| SETF
diff --git a/changelog b/changelog
index e62b0b5..2775e1c 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,14 @@
+20111106 tpd src/axiom-website/patches.html 20111106.01.tpd.patch
+20111106 tpd src/interp/vmlisp.lisp missing/unused function cleanup
+20111106 tpd src/interp/sys-pkg.lisp missing/unused function cleanup
+20111106 tpd src/interp/interp-proclaims.lisp missing/unused function cleanup
+20111106 tpd src/interp/g-util.lisp missing/unused function cleanup
+20111106 tpd src/interp/functor.lisp missing/unused function cleanup
+20111106 tpd src/interp/c-util.lisp missing/unused function cleanup
+20111106 tpd books/bookvol9 missing/unused function cleanup
+20111106 tpd books/bookvol5 missing/unused function cleanup
+20111106 tpd books/bookvol4 missing/unused function cleanup
+20111106 tpd books/bookvol10.2 missing/unused function cleanup
 20111105 tpd src/axiom-website/patches.html 20111105.01.tpd.patch
 20111105 tpd src/interp/vmlisp.lisp remove makeprop
 20111105 tpd src/interp/sys-pkg.lisp remove makeprop
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 5a8cf9f..c7714a9 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3662,5 +3662,7 @@ books/bookvol5 treeshake interpreter<br/>
 books/bookvol9 treeshake compiler<br/>
 <a href="patches/20111105.01.tpd.patch">20111105.01.tpd.patch</a>
 src/interp/vmlisp.lisp remove makeprop<br/>
+<a href="patches/20111106.01.tpd.patch">20111106.01.tpd.patch</a>
+src/interp/vmlisp.lisp missing/unused function cleanup<br/>
  </body>
 </html>
diff --git a/src/interp/c-util.lisp.pamphlet b/src/interp/c-util.lisp.pamphlet
index 8ba2c0f..0fd71f1 100644
--- a/src/interp/c-util.lisp.pamphlet
+++ b/src/interp/c-util.lisp.pamphlet
@@ -1884,13 +1884,14 @@
 
 ;;;     ***       |unStackWarning| REDEFINED
 
-(DEFUN |unStackWarning| (|msg|)
+(defun |unStackWarning| (|msg|)
   (declare (special |$warningStack| |$op| |$insideCapsuleFunctionIfTrue|))
   (PROGN
     (COND
       (|$insideCapsuleFunctionIfTrue|
           (SPADLET |msg| (CONS |$op| (CONS '|: | |msg|)))))
-    (SPADLET |$warningStack| (EFFACE |msg| |$warningStack|))
+    (SPADLET |$warningStack|
+      (delete |msg| |$warningStack| :count 1 :test #'equal))
     NIL))
 
 ;
diff --git a/src/interp/functor.lisp.pamphlet b/src/interp/functor.lisp.pamphlet
index 7ba72d3..638bca1 100644
--- a/src/interp/functor.lisp.pamphlet
+++ b/src/interp/functor.lisp.pamphlet
@@ -875,7 +875,8 @@
                                              (|optFunctorBody,CondClause|
                                               |u|)
                                              G166526))))))))))
-              (SPADLET |l| (EFFACE '('T) |l|))
+              (SPADLET |l|
+                (delete '('T) |l| :count 1 :test #'equal))
               (COND
                 ((NULL |l|) NIL)
                 ((BOOT-EQUAL (CAAR |l|) ''T)
@@ -3796,25 +3797,22 @@
                                (|InvestigateConditions,Conds|
                                    |$principal| NIL))
                       (SPADLET |$Conditions|
-                               (EFFACE NIL
-                                       (PROG (G168392)
-                                         (SPADLET G168392 NIL)
-                                         (RETURN
-                                           (DO
-                                            ((G168397 |$Conditions|
-                                              (CDR G168397))
-                                             (|u| NIL))
-                                            ((OR (ATOM G168397)
-                                              (PROGN
-                                                (SETQ |u|
-                                                 (CAR G168397))
-                                                NIL))
-                                             (NREVERSE0 G168392))
-                                             (SEQ
-                                              (EXIT
-                                               (SETQ G168392
-                                                (CONS (EFFACE NIL |u|)
-                                                 G168392)))))))))
+                       (delete NIL
+                         (PROG (G168392)
+                           (SPADLET G168392 NIL)
+                           (RETURN
+                            (DO
+                              ((G168397 |$Conditions| (CDR G168397))
+                               (|u| NIL))
+                              ((OR (ATOM G168397)
+                                (PROGN
+                                  (SETQ |u| (CAR G168397)) NIL))
+                               (NREVERSE0 G168392))
+                              (SEQ
+                               (EXIT
+                                (SETQ G168392
+                                 (CONS (delete NIL |u| :count 1 :test #'equal)
+                                   G168392))))))) :count 1 :test #'equal))
                       (SPADLET |partList|
                                (PROG (G168407)
                                  (SPADLET G168407 NIL)
diff --git a/src/interp/g-util.lisp.pamphlet b/src/interp/g-util.lisp.pamphlet
index 3502bd8..71c4655 100644
--- a/src/interp/g-util.lisp.pamphlet
+++ b/src/interp/g-util.lisp.pamphlet
@@ -489,15 +489,16 @@
 ;  RPLNODE(t,removeZeroOneDestructively first t,
 ;    removeZeroOneDestructively rest t)
 
-(DEFUN |removeZeroOneDestructively| (|t|)
-  (DECLARE (SPECIAL |$One| |$Zero|))
-  (COND
-    ((BOOT-EQUAL |t| |$Zero|) 0)
-    ((BOOT-EQUAL |t| |$One|) 1)
-    ((ATOM |t|) |t|)
-    ('T
-     (RPLNODE |t| (|removeZeroOneDestructively| (CAR |t|))
-              (|removeZeroOneDestructively| (CDR |t|))))))
+(defun |removeZeroOneDestructively| (tt)
+ (declare (special |$One| |$Zero|))
+ (cond
+   ((equal tt |$Zero|) 0)
+   ((equal tt |$One|) 1)
+   ((atom tt) tt)
+   (t
+    (rplaca tt (|removeZeroOneDestructively| (car tt)))
+    (rplacd tt (|removeZeroOneDestructively| (cdr tt)))
+    tt)))
 
 ;flattenSexpr s ==
 ;  null s => s
diff --git a/src/interp/interp-proclaims.lisp b/src/interp/interp-proclaims.lisp
index a66af84..c0b9294 100644
--- a/src/interp/interp-proclaims.lisp
+++ b/src/interp/interp-proclaims.lisp
@@ -214,7 +214,7 @@
             BOOT::|Un2E| BOOT::|SUP2Up| BOOT::OV2OV
             BOOT::|insertAlist,fn| BOOT::|replaceVars|
             BOOT::|compFromIf| BOOT::|Scr2Scr| BOOT::|compBoolean|
-            BOOT::|L2Record| BOOT::|Rm2V| VMLISP:RPLNODE
+            BOOT::|L2Record| BOOT::|Rm2V|
             BOOT::|domain2NDmp| BOOT::|Up2Up|
             BOOT::|augLisplibModemapsFromCategory| BOOT::|P2Mp|
             BOOT::|compWithMappingMode,FreeList| BOOT::|orderPredTran|
@@ -638,7 +638,7 @@
             BOOT::|putMapCode|)) 
 (PROCLAIM
     '(FTYPE (FUNCTION (T T *) T) BOOT::|pfLeaf| BOOT::BPITRACE
-            VMLISP:|remove| VMLISP:RREAD VMLISP:REMOVEQ
+            VMLISP:|remove| VMLISP:RREAD 
             BOOT::MATCH-LISP-TAG VMLISP:NREMOVE VMLISP:NREMOVEQ
             BOOT::|tokConstruct| BOOT::|pfAdd|
             BOOT:|ByteFileReadLineIntoString| BOOT:MATCH-TOKEN)) 
@@ -2843,7 +2843,7 @@
             BOOT::|throwKeyedMsg| BOOT::|canCoerceExplicit2Mapping|
             BOOT::|term1RWall| BOOT::|absolutelyCannotCoerce|
             BOOT::|rassocSub| BOOT::|coerceOrConvertOrRetract|
-            VMLISP:NCONC2 BOOT::|term1RW| BOOT::|coerceOrRetract|
+            BOOT::|term1RW| BOOT::|coerceOrRetract|
             BOOT::|resolveTMTaggedUnion| BOOT::|canCoerceUnion|
             BOOT::|acceptableTypesToResolve1| BOOT::|canCoercePermute|
             BOOT::|computeTTTranspositions| BOOT::|resolveTM2|
@@ -2876,10 +2876,10 @@
             BOOT::|replaceLast| BOOT::|coerceIntTest| VMLISP:ADDOPTIONS
             BOOT::|isSubTowerOf| BOOT::|starstarcond| BOOT::|equalOne|
             VMLISP:|assoc| VMLISP:SETSIZE BOOT::|evalSharpOne|
-            VMLISP:EFFACE BOOT::|canCoerceCommute|
+            BOOT::|canCoerceCommute|
             BOOT::|clearDependentMaps| BOOT::|constantInDomain?|
             VMLISP:EMBED BOOT::|translateMpVars2PVars|
-            VMLISP:LEXGREATERP VMLISP:RPLPAIR
+            VMLISP:LEXGREATERP
             BOOT::|addDmpLikeTermsAsTarget| VMLISP:HPUT*
             BOOT::|genMpFromDmpTerm| VMLISP:STRING2ID-N
             BOOT::|htMakeTemplates,substLabel| BOOT::|doDoitButton|
diff --git a/src/interp/sys-pkg.lisp.pamphlet b/src/interp/sys-pkg.lisp.pamphlet
index 6946d72..28c665e 100644
--- a/src/interp/sys-pkg.lisp.pamphlet
+++ b/src/interp/sys-pkg.lisp.pamphlet
@@ -352,16 +352,16 @@ provides support for compiler code.
          VMLISP::TRIMSTRING VMLISP::CURRINDEX VMLISP::EVALANDFILEACTQ
          VMLISP::LISPLIB VMLISP::FLUID VMLISP::MDEFX VMLISP::COMP370
          VMLISP::NEQ VMLISP::GETREFV VMLISP::|log| VMLISP::QVSIZE
-         VMLISP::MBPIP VMLISP::RPLNODE VMLISP::QSORT
+         VMLISP::MBPIP VMLISP::QSORT
          VMLISP::PLACEP VMLISP::RREAD VMLISP::BINTP VMLISP::QSODDP
          VMLISP::O VMLISP::RVECP VMLISP::CHAR2NUM VMLISP::POPP
          VMLISP::QCDAADR VMLISP::HKEYS VMLISP::HASHCVEC VMLISP::HASHID
-         VMLISP::REMOVEQ VMLISP::LISTOFFUNCTIONS
+         VMLISP::LISTOFFUNCTIONS
          VMLISP::QCADAAR VMLISP::ABSVAL VMLISP::VMPRINT
          VMLISP::MAKE-APPENDSTREAM
          VMLISP::MAKE-INSTREAM VMLISP::HASHTABLEP VMLISP::UPCASE
          VMLISP::LOADCOND VMLISP::STRPOSL VMLISP::STATEP VMLISP::QCDADR
-         VMLISP::HREMPROP VMLISP::LAM VMLISP::FBPIP VMLISP::NCONC2
+         VMLISP::HREMPROP VMLISP::LAM VMLISP::FBPIP
          VMLISP::GETFULLSTR VMLISP::I VMLISP::HREM
          VMLISP::*LISP-BIN-FILETYPE* VMLISP::INT2RNUM VMLISP::EBCDIC
          VMLISP::$INFILEP VMLISP::BFP VMLISP::NUMP VMLISP::UNEMBED
@@ -384,14 +384,14 @@ provides support for compiler code.
          VMLISP::PROPLIST VMLISP::INTP VMLISP::OUTPUT VMLISP::CONSOLE
          VMLISP::QCDDDAR VMLISP::ADDOPTIONS VMLISP::$FILETYPE-TABLE
          VMLISP::QSMINUSP VMLISP::|assoc| VMLISP::SETSIZE VMLISP::QCDR
-         VMLISP::EFFACE VMLISP::COPY VMLISP::DOWNCASE VMLISP::LC2UC
+         VMLISP::COPY VMLISP::DOWNCASE VMLISP::LC2UC
          VMLISP::EMBED VMLISP::SETANDFILEQ VMLISP::QSMAX
          VMLISP::LIST2REFVEC VMLISP::MACRO-INVALIDARGS VMLISP::EMBEDDED
          VMLISP::REFVECP VMLISP::CLOSEDFN VMLISP::MAKE-HASHTABLE
          VMLISP::MAKE-FILENAME VMLISP::|$defaultMsgDatabaseName|
          VMLISP::LEXGREATERP
          VMLISP::IDENTP VMLISP::QSINC1 VMLISP::QESET VMLISP::MRP
-         VMLISP::LESSP VMLISP::RPLPAIR VMLISP::QVELT VMLISP::QRPLQ
+         VMLISP::LESSP VMLISP::QVELT VMLISP::QRPLQ
          VMLISP::MACERR VMLISP::*FILEACTQ-APPLY* VMLISP::HPUT*
          VMLISP::$FILEP VMLISP::MAKE-FULL-CVEC VMLISP::HCLEAR
          VMLISP::ERRORINSTREAM VMLISP::HPUTPROP 
@@ -712,7 +712,6 @@ provides support for compiler code.
 (lisp:import '(vmlisp::shut))
 (lisp:import '(vmlisp::prin2cvec))
 (lisp:import '(vmlisp::ncons))
-(lisp:import '(vmlisp::rplpair))
 (lisp:import '(vmlisp::nump))
 (lisp:import '(vmlisp::intp))
 (lisp:import '(vmlisp::ifcar))
diff --git a/src/interp/vmlisp.lisp.pamphlet b/src/interp/vmlisp.lisp.pamphlet
index 9bee962..8c7cf53 100644
--- a/src/interp/vmlisp.lisp.pamphlet
+++ b/src/interp/vmlisp.lisp.pamphlet
@@ -592,36 +592,17 @@ documentclass{article}
 ; 13.3 Updating
 
 
-(defun RPLPAIR (pair1 pair2)
-  (RPLACA pair1 (CAR pair2))
-  (RPLACD pair1 (CDR pair2)) pair1)
-
-(defun RPLNODE (pair1 ca2 cd2)
- (RPLACA pair1 ca2) 
- (RPLACD pair1 cd2) pair1)
-
 ; 14.0 Operations on Lists
 
 ; 14.1 Creation
 
-(defun VEC2LIST (vec) (coerce vec 'list))
-
 (defun |remove| (list item &optional (count 1))
   (if (integerp count)
       (remove item list :count count :test #'equalp)
       (remove item list :test #'equalp)))
 
-(defun REMOVEQ (list item &optional (count 1))
-  (if (integerp count)
-      (remove item list :count count :test #'eq)
-      (remove item list :test #'eq)))
-
-; 14.2 Accessing
-
 (defun |last| (x) (car (lastpair x)))
 
-; 14.3 Searching
-
 (DEFUN |assoc| (X Y)
   "Return the pair associated with key X in association list Y."
   ; ignores non-nil list terminators
@@ -661,8 +642,6 @@ documentclass{article}
 
 (defun EFFACE (item list) (delete item list :count 1 :test #'equal))
 
-(defun NCONC2 (x y) (NCONC x y)) ;NCONC with exactly two arguments
-
 ; 14.6 Miscellaneous
 
 (defun QSORT (l)
