diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet
index 36c7650..6ec7952 100644
--- a/books/bookvol9.pamphlet
+++ b/books/bookvol9.pamphlet
@@ -2710,6 +2710,39 @@ It is pretty much just a translation of DEF-IS-REV
 
 @
 
+\defun{PARSE-TokenCommandTail}{PARSE-TokenCommandTail}
+\calls{PARSE-TokenCommandTail}{bang}
+\calls{PARSE-TokenCommandTail}{optional}
+\calls{PARSE-TokenCommandTail}{star}
+\calls{PARSE-TokenCommandTail}{PARSE-TokenOption}
+\calls{PARSE-TokenCommandTail}{atEndOfLine}
+\calls{PARSE-TokenCommandTail}{push-reduction}
+\calls{PARSE-TokenCommandTail}{PARSE-TokenCommandTail}
+\calls{PARSE-TokenCommandTail}{pop-stack-2}
+\calls{PARSE-TokenCommandTail}{pop-stack-1}
+\calls{PARSE-TokenCommandTail}{action}
+\calls{PARSE-TokenCommandTail}{systemCommand}
+<<defun PARSE-TokenCommandTail>>=
+(defun |PARSE-TokenCommandTail| ()
+ (and (bang fil_test (optional (star repeator (|PARSE-TokenOption|))))
+      (|atEndOfLine|)
+      (push-reduction '|PARSE-TokenCommandTail|
+          (cons (pop-stack-2) (append (pop-stack-1) nil)))
+      (action (|systemCommand| (pop-stack-1)))))
+
+@
+
+
+\defun{PARSE-TokenOption}{PARSE-TokenOption}
+\calls{PARSE-TokenOption}{match-advance-string}
+\calls{PARSE-TokenOption}{must}
+\calls{PARSE-TokenOption}{PARSE-TokenList}
+<<defun PARSE-TokenOption>>=
+(defun |PARSE-TokenOption| ()
+ (and (match-advance-string ")") (must (|PARSE-TokenList|))))
+
+@
+
 \defun{PARSE-TokenList}{PARSE-TokenList}
 \calls{PARSE-TokenList}{star}
 \calls{PARSE-TokenList}{isTokenDelimiter}
@@ -2726,6 +2759,157 @@ It is pretty much just a translation of DEF-IS-REV
 
 @
 
+\defun{PARSE-CommandTail}{PARSE-CommandTail}
+\calls{PARSE-CommandTail}{bang}
+\calls{PARSE-CommandTail}{optional}
+\calls{PARSE-CommandTail}{star}
+\calls{PARSE-CommandTail}{push-reduction}
+\calls{PARSE-CommandTail}{PARSE-Option}
+\calls{PARSE-CommandTail}{PARSE-CommandTail}
+\calls{PARSE-CommandTail}{pop-stack-2}
+\calls{PARSE-CommandTail}{pop-stack-1}
+\calls{PARSE-CommandTail}{action}
+\calls{PARSE-CommandTail}{systemCommand}
+<<defun PARSE-CommandTail>>=
+(defun |PARSE-CommandTail| ()
+ (and (bang fil_test (optional (star repeator (|PARSE-Option|))))
+      (|atEndOfLine|)
+      (push-reduction '|PARSE-CommandTail|
+          (cons (pop-stack-2) (append (pop-stack-1) nil)))
+      (action (|systemCommand| (pop-stack-1)))))
+
+@
+
+\defun{PARSE-PrimaryOrQM}{PARSE-PrimaryOrQM}
+\calls{PARSE-PrimaryOrQM}{match-advance-string}
+\calls{PARSE-PrimaryOrQM}{push-reduction}
+\calls{PARSE-PrimaryOrQM}{PARSE-PrimaryOrQM}
+\calls{PARSE-PrimaryOrQM}{PARSE-Primary}
+<<defun PARSE-PrimaryOrQM>>=
+(defun |PARSE-PrimaryOrQM| ()
+ (or (and (match-advance-string "?")
+          (push-reduction '|PARSE-PrimaryOrQM| '?))
+     (|PARSE-Primary|)))
+
+@
+
+\defun{PARSE-Option}{PARSE-Option}
+\calls{PARSE-Option}{match-advance-string}
+\calls{PARSE-Option}{must}
+\calls{PARSE-Option}{star}
+\calls{PARSE-Option}{PARSE-PrimaryOrQM}
+<<defun PARSE-Option>>=
+(defun |PARSE-Option| ()
+ (and (match-advance-string ")")
+      (must (star repeator (|PARSE-PrimaryOrQM|)))))
+
+@
+
+\defun{PARSE-Statement}{PARSE-Statement}
+\calls{PARSE-Statement}{PARSE-Expr}
+\calls{PARSE-Statement}{optional}
+\calls{PARSE-Statement}{star}
+\calls{PARSE-Statement}{match-advance-string}
+\calls{PARSE-Statement}{must}
+\calls{PARSE-Statement}{push-reduction}
+\calls{PARSE-Statement}{pop-stack-2}
+\calls{PARSE-Statement}{pop-stack-1}
+<<defun PARSE-Statement>>=
+(defun |PARSE-Statement| ()
+  (and (|PARSE-Expr| 0)
+       (optional
+           (and (star repeator
+                      (and (match-advance-string ",")
+                           (must (|PARSE-Expr| 0))))
+                (push-reduction '|PARSE-Statement|
+                    (cons '|Series|
+                          (cons (pop-stack-2)
+                                (append (pop-stack-1) nil))))))))
+
+@
+
+\defun{PARSE-InfixWith}{PARSE-InfixWith}
+\calls{PARSE-InfixWith}{PARSE-With}
+\calls{PARSE-InfixWith}{push-reduction}
+\calls{PARSE-InfixWith}{pop-stack-2}
+\calls{PARSE-InfixWith}{pop-stack-1}
+<<defun PARSE-InfixWith>>=
+(defun |PARSE-InfixWith| ()
+  (and (|PARSE-With|)
+       (push-reduction '|PARSE-InfixWith|
+           (cons '|Join| (cons (pop-stack-2) (cons (pop-stack-1) nil))))))
+
+@
+
+\defun{PARSE-With}{PARSE-With}
+\calls{PARSE-With}{match-advance-string}
+\calls{PARSE-With}{must}
+\calls{PARSE-With}{push-reduction}
+\calls{PARSE-With}{pop-stack-1}
+<<defun PARSE-With>>=
+(defun |PARSE-With| ()
+  (and (match-advance-string "with") (must (|PARSE-Category|))
+       (push-reduction '|PARSE-With|
+           (cons '|with| (cons (pop-stack-1) nil)))))
+
+@
+
+\defun{PARSE-Category}{PARSE-Category}
+\calls{PARSE-Category}{match-advance-string}
+\calls{PARSE-Category}{must}
+\calls{PARSE-Category}{bang}
+\calls{PARSE-Category}{optional}
+\calls{PARSE-Category}{push-reduction}
+\calls{PARSE-Category}{PARSE-Expression}
+\calls{PARSE-Category}{PARSE-Category}
+\calls{PARSE-Category}{pop-stack-3}
+\calls{PARSE-Category}{pop-stack-2}
+\calls{PARSE-Category}{pop-stack-1}
+\calls{PARSE-Category}{star}
+\calls{PARSE-Category}{line-number}
+\calls{PARSE-Category}{PARSE-Application}
+\calls{PARSE-Category}{action}
+\calls{PARSE-Category}{recordSignatureDocumentation}
+\calls{PARSE-Category}{nth-stack}
+\calls{PARSE-Category}{recordAttributeDocumentation}
+\uses{PARSE-Category}{current-line}
+<<defun PARSE-Category>>=
+(defun |PARSE-Category| ()
+ (let (g1)
+  (or (and (match-advance-string "if") (must (|PARSE-Expression|))
+           (must (match-advance-string "then"))
+           (must (|PARSE-Category|))
+           (bang fil_test
+                 (optional
+                     (and (match-advance-string "else")
+                          (must (|PARSE-Category|)))))
+           (push-reduction '|PARSE-Category|
+             (list '|if| (pop-stack-3) (pop-stack-2) (pop-stack-1))))
+      (and (match-advance-string "(") (must (|PARSE-Category|))
+           (bang fil_test
+                 (optional
+                     (star repeator
+                           (and (match-advance-string ";")
+                                (must (|PARSE-Category|))))))
+           (must (match-advance-string ")"))
+           (push-reduction '|PARSE-Category|
+               (cons 'category
+                     (cons (pop-stack-2)
+                           (append (pop-stack-1) nil)))))
+      (and (action (setq g1 (line-number current-line)))
+           (|PARSE-Application|)
+           (must (or (and (match-advance-string ":")
+                          (must (|PARSE-Expression|))
+                          (push-reduction '|PARSE-Category|
+                           (list '|Signature| (pop-stack-2) (pop-stack-1) ))
+                          (action (|recordSignatureDocumentation|
+                                   (nth-stack 1) g1)))
+                     (and (push-reduction '|PARSE-Category|
+                            (list '|Attribute| (pop-stack-1) ))
+                          (action (|recordAttributeDocumentation|
+                                   (nth-stack 1) g1)))))))))
+
+@
 
 \chapter{The Compiler}
 
@@ -5885,11 +6069,19 @@ if \verb|$InteractiveMode| then use a null outputstream
 <<defun next-line>>
 <<defun ncINTERPFILE>>
 
+<<defun PARSE-Category>>
 <<defun PARSE-Command>>
+<<defun PARSE-CommandTail>>
+<<defun PARSE-InfixWith>>
 <<defun PARSE-NewExpr>>
+<<defun PARSE-Option>>
+<<defun PARSE-PrimaryOrQM>>
 <<defun PARSE-SpecialCommand>>
 <<defun PARSE-SpecialKeyWord>>
+<<defun PARSE-Statement>>
+<<defun PARSE-TokenCommandTail>>
 <<defun PARSE-TokenList>>
+<<defun PARSE-With>>
 <<defun parsepiles>>
 <<defun postAtom>>
 <<defun postcheck>>
diff --git a/changelog b/changelog
index d3dd704..254a562 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,6 @@
+20101016 tpd src/axiom-website/patches.html 20101016.01.tpd.patch
+20101016 tpd src/interp/parsing.lisp treeshake compiler
+20101016 tpd books/bookvol9 treeshake compiler
 20101015 tpd src/axiom-website/patches.html 20101015.03.tpd.patch
 20101015 tpd src/interp/parsing.lisp treeshake compiler
 20101015 tpd books/bookvol9 treeshake compiler
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 1e68beb..c261694 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3218,5 +3218,7 @@ books/bookvol5 latex cleanup<br/>
 books/bookvol9 treeshake compiler<br/>
 <a href="patches/20101015.03.tpd.patch">20101015.03.tpd.patch</a>
 books/bookvol9 treeshake compiler<br/>
+<a href="patches/20101016.01.tpd.patch">20101016.01.tpd.patch</a>
+books/bookvol9 treeshake compiler<br/>
  </body>
 </html>
diff --git a/src/interp/parsing.lisp.pamphlet b/src/interp/parsing.lisp.pamphlet
index bccff1c..a6267d2 100644
--- a/src/interp/parsing.lisp.pamphlet
+++ b/src/interp/parsing.lisp.pamphlet
@@ -1928,113 +1928,6 @@ fnewmeta
 (DEFPARAMETER LABLASOC NIL)
 
 
-(DEFUN |PARSE-TokenCommandTail| ()
-  (AND (BANG FIL_TEST (OPTIONAL (STAR REPEATOR (|PARSE-TokenOption|))))
-       (|atEndOfLine|)
-       (PUSH-REDUCTION '|PARSE-TokenCommandTail|
-           (CONS (POP-STACK-2) (APPEND (POP-STACK-1) NIL)))
-       (ACTION (|systemCommand| (POP-STACK-1)))))
-(trace |PARSE-TokenCommandTail|) 
-
-
-(DEFUN |PARSE-TokenOption| ()
-  (AND (MATCH-ADVANCE-STRING ")") (MUST (|PARSE-TokenList|))))
-(trace |PARSE-TokenOption|) 
-
-
-(DEFUN |PARSE-CommandTail| ()
-  (AND (BANG FIL_TEST (OPTIONAL (STAR REPEATOR (|PARSE-Option|))))
-       (|atEndOfLine|)
-       (PUSH-REDUCTION '|PARSE-CommandTail|
-           (CONS (POP-STACK-2) (APPEND (POP-STACK-1) NIL)))
-       (ACTION (|systemCommand| (POP-STACK-1)))))
-(trace |PARSE-CommandTail|) 
-
-
-(DEFUN |PARSE-PrimaryOrQM| ()
-  (OR (AND (MATCH-ADVANCE-STRING "?")
-           (PUSH-REDUCTION '|PARSE-PrimaryOrQM| '?))
-      (|PARSE-Primary|)))
-(trace |PARSE-PrimaryOrQM|) 
-
-
-(DEFUN |PARSE-Option| ()
-  (AND (MATCH-ADVANCE-STRING ")")
-       (MUST (STAR REPEATOR (|PARSE-PrimaryOrQM|)))))
-(trace |PARSE-Option|) 
-
-
-(DEFUN |PARSE-Statement| ()
-  (AND (|PARSE-Expr| 0)
-       (OPTIONAL
-           (AND (STAR REPEATOR
-                      (AND (MATCH-ADVANCE-STRING ",")
-                           (MUST (|PARSE-Expr| 0))))
-                (PUSH-REDUCTION '|PARSE-Statement|
-                    (CONS '|Series|
-                          (CONS (POP-STACK-2)
-                                (APPEND (POP-STACK-1) NIL))))))))
-(trace |PARSE-Statement|) 
-
-
-(DEFUN |PARSE-InfixWith| ()
-  (AND (|PARSE-With|)
-       (PUSH-REDUCTION '|PARSE-InfixWith|
-           (CONS '|Join| (CONS (POP-STACK-2) (CONS (POP-STACK-1) NIL))))))
-(trace |PARSE-InfixWith|) 
-
-
-(DEFUN |PARSE-With| ()
-  (AND (MATCH-ADVANCE-STRING "with") (MUST (|PARSE-Category|))
-       (PUSH-REDUCTION '|PARSE-With|
-           (CONS '|with| (CONS (POP-STACK-1) NIL)))))
-(trace |PARSE-With|) 
-
-
-(DEFUN |PARSE-Category| ()
-  (PROG (G1)
-    (RETURN
-      (OR (AND (MATCH-ADVANCE-STRING "if") (MUST (|PARSE-Expression|))
-               (MUST (MATCH-ADVANCE-STRING "then"))
-               (MUST (|PARSE-Category|))
-               (BANG FIL_TEST
-                     (OPTIONAL
-                         (AND (MATCH-ADVANCE-STRING "else")
-                              (MUST (|PARSE-Category|)))))
-               (PUSH-REDUCTION '|PARSE-Category|
-                   (CONS '|if|
-                         (CONS (POP-STACK-3)
-                               (CONS (POP-STACK-2)
-                                     (CONS (POP-STACK-1) NIL))))))
-          (AND (MATCH-ADVANCE-STRING "(") (MUST (|PARSE-Category|))
-               (BANG FIL_TEST
-                     (OPTIONAL
-                         (STAR REPEATOR
-                               (AND (MATCH-ADVANCE-STRING ";")
-                                    (MUST (|PARSE-Category|))))))
-               (MUST (MATCH-ADVANCE-STRING ")"))
-               (PUSH-REDUCTION '|PARSE-Category|
-                   (CONS 'CATEGORY
-                         (CONS (POP-STACK-2)
-                               (APPEND (POP-STACK-1) NIL)))))
-          (AND (ACTION (SETQ G1 (LINE-NUMBER CURRENT-LINE)))
-               (|PARSE-Application|)
-               (MUST (OR (AND (MATCH-ADVANCE-STRING ":")
-                              (MUST (|PARSE-Expression|))
-                              (PUSH-REDUCTION '|PARSE-Category|
-                                  (CONS '|Signature|
-                                        (CONS (POP-STACK-2)
-                                         (CONS (POP-STACK-1) NIL))))
-                              (ACTION (|recordSignatureDocumentation|
-                                       (NTH-STACK 1) G1)))
-                         (AND (PUSH-REDUCTION '|PARSE-Category|
-                                  (CONS '|Attribute|
-                                        (CONS (POP-STACK-1) NIL)))
-                              (ACTION (|recordAttributeDocumentation|
-                                       (NTH-STACK 1) G1))))))))))
-(trace |PARSE-Category|) 
-
-
 (DEFUN |PARSE-Expression| ()
   (AND (|PARSE-Expr|
            (|PARSE-rightBindingPowerOf| (MAKE-SYMBOL-OF PRIOR-TOKEN)
