diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet
index 6cafe86..a672cc8 100644
--- a/books/bookvol9.pamphlet
+++ b/books/bookvol9.pamphlet
@@ -1349,6 +1349,27 @@ preferred to the underlying representation -- RDJ 9/12/83
 
 @
 
+\defun{compTypeOf}{compTypeOf}
+\calls{compTypeOf}{eqsubstlist}
+\calls{compTypeOf}{get}
+\calls{compTypeOf}{put}
+\calls{compTypeOf}{comp3}
+\usesdollar{compTypeOf}{insideCompTypeOf}
+\usesdollar{compTypeOf}{FormalMapVariableList}
+<<defun compTypeOf>>=
+(defun |compTypeOf| (x m e)
+ (let (|$insideCompTypeOf| op argl newModemap)
+ (declare (special |$insideCompTypeOf| |$FormalMapVariableList|))
+  (setq op (car x))
+  (setq argl (cdr x))
+  (setq |$insideCompTypeOf| t)
+  (setq newModemap
+    (eqsubstlist argl |$FormalMapVariableList| (|get| op '|modemap| e)))
+  (setq e (|put| op '|modemap| newModemap e))
+  (|comp3| x m e)))
+
+@
+
 \defun{compColon}{compColon}
 \begin{verbatim}
 ;compColon([":",f,t],m,e) ==
@@ -1629,6 +1650,29 @@ preferred to the underlying representation -- RDJ 9/12/83
 
 @
 
+\defun{primitiveType}{primitiveType}
+\usesdollar{primitiveType}{DoubleFloat}
+\usesdollar{primitiveType}{NegativeInteger}
+\usesdollar{primitiveType}{PositiveInteger}
+\usesdollar{primitiveType}{NonNegativeInteger}
+\usesdollar{primitiveType}{String}
+\usesdollar{primitiveType}{EmptyMode}
+<<defun primitiveType>>=
+(defun |primitiveType| (x)
+  (declare (special |$DoubleFloat| |$NegativeInteger| |$PositiveInteger|
+                     |$NonNegativeInteger| |$String| |$EmptyMode|))
+  (cond
+    ((null x) |$EmptyMode|)
+    ((stringp x) |$String|)
+    ((integerp x)
+     (cond
+       ((eql x 0) |$NonNegativeInteger|)
+       ((> x 0) |$PositiveInteger|)
+       (t |$NegativeInteger|)))
+    ((floatp x) |$DoubleFloat|)
+    (t nil)))
+
+@
 \defun{compSymbol}{compSymbol}
 \calls{compSymbol}{getmode}
 \calls{compSymbol}{get}
@@ -2546,6 +2590,7 @@ if \verb|$InteractiveMode| then use a null outputstream
 <<defun compOrCroak1,compactify>>
 <<defun compSymbol>>
 <<defun compTopLevel>>
+<<defun compTypeOf>>
 <<defun compVector>>
 <<defun compWithMappingMode>>
 <<defun compWithMappingMode1>>
@@ -2556,6 +2601,8 @@ if \verb|$InteractiveMode| then use a null outputstream
 
 <<defun ncINTERPFILE>>
 
+<<defun primitiveType>>
+
 <<defun recompile-lib-file-if-necessary>>
 <<defun /rf-1>>
 <<defun /RQ,LIB>>
diff --git a/changelog b/changelog
index 2843451..52c3c8f 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,6 @@
+20100917 tpd src/axiom-website/patches.html 20100917.01.tpd.patch
+20100917 tpd src/interp/compiler.lisp treeshake compiler
+20100917 tpd books/bookvol9 treeshake compiler
 20100916 tpd src/axiom-website/patches.html 20100916.01.tpd.patch
 20100916 tpd src/interp/compiler.lisp treeshake compiler
 20100916 tpd books/bookvol9 treeshake compiler
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 181287d..09161d3 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3123,5 +3123,7 @@ books/bookvol9 treeshake compiler<br/>
 src/input/manuel.input add Manuel's integral to test suite<br/>
 <a href="patches/20100916.01.tpd.patch">20100916.01.tpd.patch</a>
 books/bookvol9 treeshake compiler<br/>
+<a href="patches/20100917.01.tpd.patch">20100917.01.tpd.patch</a>
+books/bookvol9 treeshake compiler<br/>
  </body>
 </html>
diff --git a/src/interp/compiler.lisp.pamphlet b/src/interp/compiler.lisp.pamphlet
index 4cf1c9d..1b88986 100644
--- a/src/interp/compiler.lisp.pamphlet
+++ b/src/interp/compiler.lisp.pamphlet
@@ -45,30 +45,6 @@
 
 @
 
-\subsection{compTypeOf}
-<<*>>=
-;compTypeOf(x:=[op,:argl],m,e) ==
-;  $insideCompTypeOf: local := true
-;  newModemap:= EQSUBSTLIST(argl,$FormalMapVariableList,get(op,'modemap,e))
-;  e:= put(op,'modemap,newModemap,e)
-;  comp3(x,m,e)
-
-(DEFUN |compTypeOf| (|x| |m| |e|)
-  (PROG (|$insideCompTypeOf| |op| |argl| |newModemap|)
-    (DECLARE (SPECIAL |$insideCompTypeOf| |$FormalMapVariableList|))
-    (RETURN
-      (PROGN
-        (SPADLET |op| (CAR |x|))
-        (SPADLET |argl| (CDR |x|))
-        (SPADLET |$insideCompTypeOf| 'T)
-        (SPADLET |newModemap|
-                 (EQSUBSTLIST |argl| |$FormalMapVariableList|
-                     (|get| |op| '|modemap| |e|)))
-        (SPADLET |e| (|put| |op| '|modemap| |newModemap| |e|))
-        (|comp3| |x| |m| |e|)))))
-
-@
-
 \subsection{extractCodeAndConstructTriple}
 <<*>>=
 ;extractCodeAndConstructTriple(u, m, oldE) ==
@@ -105,33 +81,6 @@
 
 @
 
-\subsection{primitiveType}
-<<*>>=
-;primitiveType x ==
-;  x is nil => $EmptyMode
-;  STRINGP x => $String
-;  INTEGERP x =>
-;    x=0 => $NonNegativeInteger
-;    x>0 => $PositiveInteger
-;    true => $NegativeInteger
-;  FLOATP x => $DoubleFloat
-;  nil
-
-(DEFUN |primitiveType| (|x|)
-  (declare (special |$DoubleFloat| |$NegativeInteger| |$PositiveInteger|
-                     |$NonNegativeInteger| |$String| |$EmptyMode|))
-  (COND
-    ((NULL |x|) |$EmptyMode|)
-    ((STRINGP |x|) |$String|)
-    ((INTEGERP |x|)
-     (COND
-       ((EQL |x| 0) |$NonNegativeInteger|)
-       ((> |x| 0) |$PositiveInteger|)
-       ('T |$NegativeInteger|)))
-    ((FLOATP |x|) |$DoubleFloat|)
-    ('T NIL)))
-
-@
 \subsection{convertOrCroak}
 <<*>>=
 ;convertOrCroak(T,m) ==
