diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet
index 605c3ab..5f530fd 100644
--- a/books/bookvol9.pamphlet
+++ b/books/bookvol9.pamphlet
@@ -4928,6 +4928,20 @@ of the symbol being parsed. The original list read:
\end{chunk}
+\defun{parseType}{parseType}
+\calls{parseType}{msubst}
+\calls{parseType}{parseTran}
+\begin{chunk}{defun parseType}
+(defun |parseType| (x)
+ (declare (special |$EmptyMode| |$quadSymbol|))
+ (setq x (msubst |$EmptyMode| |$quadSymbol| x))
+ (if (and (pairp x) (eq (qcar x) '|typeOf|)
+ (pairp (qcdr x)) (eq (qcdr (qcdr x)) nil))
+ (list '|typeOf| (|parseTran| (qcar (qcdr x))))
+ x))
+
+\end{chunk}
+
\defplist{category}{parseCategory}
\begin{chunk}{postvars}
(eval-when (eval load)
@@ -4948,6 +4962,20 @@ of the symbol being parsed. The original list read:
\end{chunk}
+\defun{parseDropAssertions}{parseDropAssertions}
+\calls{parseDropAssertions}{parseDropAssertions}
+\begin{chunk}{defun parseDropAssertions}
+(defun |parseDropAssertions| (x)
+ (cond
+ ((not (pairp x)) x)
+ ((and (pairp (qcar x)) (eq (qcar (qcar x)) 'if)
+ (pairp (qcdr (qcar x)))
+ (eq (qcar (qcdr (qcar x))) '|asserted|))
+ (|parseDropAssertions| (qcdr x)))
+ (t (cons (qcar x) (|parseDropAssertions| (qcdr x))))))
+
+\end{chunk}
+
\defplist{::}{parseCoerce}
\begin{chunk}{postvars}
(eval-when (eval load)
@@ -11685,6 +11713,63 @@ Stack of results of reduced productions.
\chapter{Utility Functions}
+\defun{parseTranCheckForRecord}{parseTranCheckForRecord}
+\begin{verbatim}
+;parseTranCheckForRecord(x,op) ==
+; (x:= parseTran x) is ['Record,:l] =>
+; or/[y for y in l | y isnt [":",.,.]] =>
+; postError ['" Constructor",:bright x,'"has missing label"]
+; x
+; x
+\end{verbatim}
+\calls{parseTranCheckForRecord}{qcar}
+\calls{parseTranCheckForRecord}{qcdr}
+\calls{parseTranCheckForRecord}{postError}
+\calls{parseTranCheckForRecord}{parseTran}
+\begin{chunk}{defun parseTranCheckForRecord}
+(defun |parseTranCheckForRecord| (x op)
+ (let (tmp3)
+ (setq x (|parseTran| x))
+ (cond
+ ((and (pairp x) (eq (qcar x) '|Record|))
+ (cond
+ ((do ((z nil tmp3) (tmp4 (qcdr x) (cdr tmp4)) (y nil))
+ ((or z (atom tmp4)) tmp3)
+ (setq y (car tmp4))
+ (cond
+ ((null (and (pairp y) (eq (qcar y) '|:|) (pairp (qcdr y))
+ (pairp (qcdr (qcdr y))) (eq (qcdr (qcdr (qcdr y))) nil)))
+ (setq tmp3 (or tmp3 y)))))
+ (|postError| (list " Constructor" x "has missing label" )))
+ (t x)))
+ (t x))))
+
+\end{chunk}
+
+
+\defun{new2OldLisp}{new2OldLisp}
+\calls{new2OldLisp}{new2OldTran}
+\calls{new2OldLisp}{postTransform}
+\begin{chunk}{defun new2OldLisp}
+(defun |new2OldLisp| (x)
+ (|new2OldTran| (|postTransform| x)))
+
+\end{chunk}
+
+\defun{makeSimplePredicateOrNil}{makeSimplePredicateOrNil}
+\calls{makeSimplePredicateOrNil}{isSimple}
+\calls{makeSimplePredicateOrNil}{isAlmostSimple}
+\calls{makeSimplePredicateOrNil}{wrapSEQExit}
+\begin{chunk}{defun makeSimplePredicateOrNil}
+(defun |makeSimplePredicateOrNil| (p)
+ (let (u g)
+ (cond
+ ((|isSimple| p) nil)
+ ((setq u (|isAlmostSimple| p)) u)
+ (t (|wrapSEQExit| (list (list 'let (setq g (gensym)) p) g))))))
+
+\end{chunk}
+
\defun{parse-spadstring}{parse-spadstring}
\calls{parse-spadstring}{match-current-token}
\calls{parse-spadstring}{token-symbol}
@@ -14935,6 +15020,7 @@ if \verb|$InteractiveMode| then use a null outputstream
\getchunk{defun line-new-line}
\getchunk{defun postMakeCons}
+\getchunk{defun makeSimplePredicateOrNil}
\getchunk{defun make-string-adjustable}
\getchunk{defun make-symbol-of}
\getchunk{defun match-advance-string}
@@ -14945,11 +15031,12 @@ if \verb|$InteractiveMode| then use a null outputstream
\getchunk{defun meta-syntax-error}
\getchunk{defun modifyModeStack}
+\getchunk{defun ncINTERPFILE}
\getchunk{defun next-char}
\getchunk{defun next-line}
\getchunk{defun next-tab-loc}
\getchunk{defun next-token}
-\getchunk{defun ncINTERPFILE}
+\getchunk{defun new2OldLisp}
\getchunk{defun nonblankloc}
\getchunk{defun optional}
@@ -15046,6 +15133,7 @@ if \verb|$InteractiveMode| then use a null outputstream
\getchunk{defun parseDollarGreaterThan}
\getchunk{defun parseDollarLessEqual}
\getchunk{defun parseDollarNotEqual}
+\getchunk{defun parseDropAssertions}
\getchunk{defun parseEquivalence}
\getchunk{defun parseExit}
\getchunk{defun postFlatten}
@@ -15078,8 +15166,10 @@ if \verb|$InteractiveMode| then use a null outputstream
\getchunk{defun parseSegment}
\getchunk{defun parseSeq}
\getchunk{defun parseTran}
+\getchunk{defun parseTranCheckForRecord}
\getchunk{defun parseTranList}
\getchunk{defun parseTransform}
+\getchunk{defun parseType}
\getchunk{defun parseVCONS}
\getchunk{defun parseWhere}
\getchunk{defun Pop-Reduction}
diff --git a/changelog b/changelog
index 1ddf6ce..cff6b3b 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,6 @@
+20110311 tpd src/axiom-website/patches.html 20110311.01.tpd.patch
+20110311 tpd src/interp/parsing.lisp treeshake compiler
+20110311 tpd books/bookvol9 treeshake compiler
20110310 tpd src/axiom-website/patches.html 20110310.01.tpd.patch
20110310 tpd src/interp/parsing.lisp treeshake compiler
20110310 tpd books/bookvol9 treeshake compiler
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 96b705d..bc989b8 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3427,5 +3427,7 @@ books/bookvol9 treeshake compiler
books/bookvol9 treeshake compiler
20110310.01.tpd.patch
books/bookvol9 treeshake compiler
+20110311.01.tpd.patch
+books/bookvol9 treeshake compiler