diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet
index a7f8f80..07a6745 100644
--- a/books/bookvol9.pamphlet
+++ b/books/bookvol9.pamphlet
@@ -6920,6 +6920,18 @@ $\rightarrow$
\end{chunk}
\defun{makeFunctorArgumentParameters}{makeFunctorArgumentParameters}
+\calls{makeFunctorArgumentParameters}{assq}
+\calls{makeFunctorArgumentParameters}{msubst}
+\calls{makeFunctorArgumentParameters}{isCategoryForm}
+\calls{makeFunctorArgumentParameters}{pairp}
+\calls{makeFunctorArgumentParameters}{qcar}
+\calls{makeFunctorArgumentParameters}{qcdr}
+\calls{makeFunctorArgumentParameters}{genDomainViewList0}
+\calls{makeFunctorArgumentParameters}{genDomainView}
+\calls{makeFunctorArgumentParameters}{union}
+\usesdollar{makeFunctorArgumentParameters}{ConditionalOperators}
+\usesdollar{makeFunctorArgumentParameters}{alternateViewList}
+\usesdollar{makeFunctorArgumentParameters}{forceAdd}
\begin{chunk}{defun makeFunctorArgumentParameters}
(defun |makeFunctorArgumentParameters| (argl sigl target)
(labels (
@@ -7000,6 +7012,111 @@ $\rightarrow$
\end{chunk}
+\defun{genDomainViewList0}{genDomainViewList0}
+\calls{genDomainViewList0}{getDomainViewList}
+\begin{chunk}{defun genDomainViewList0}
+(defun |genDomainViewList0| (id catlist)
+ (|genDomainViewList| id catlist t))
+
+\end{chunk}
+
+\defun{genDomainViewList}{genDomainViewList}
+\calls{genDomainViewList}{pairp}
+\calls{genDomainViewList}{qcdr}
+\calls{genDomainViewList}{isCategoryForm}
+\calls{genDomainViewList}{genDomainView}
+\calls{genDomainViewList}{genDomainViewName}
+\calls{genDomainViewList}{genDomainViewList}
+\usesdollar{genDomainViewList}{EmptyEnvironment}
+\begin{chunk}{defun genDomainViewList}
+(defun |genDomainViewList| (id catlist firsttime)
+ (declare (special |$EmptyEnvironment|))
+ (cond
+ ((null catlist) nil)
+ ((and (pairp catlist) (eq (qcdr catlist) nil)
+ (null (|isCategoryForm| (first catlist) |$EmptyEnvironment|)))
+ nil)
+ (t
+ (cons
+ (|genDomainView|
+ (if firsttime id (|genDomainViewName| id (first catlist)))
+ id (first catlist) '|getDomainView|)
+ (|genDomainViewList| id (rest catlist) nil)))))
+
+\end{chunk}
+
+\defun{genDomainView}{genDomainView}
+\calls{genDomainView}{genDomainOps}
+\calls{genDomainView}{pairp}
+\calls{genDomainView}{qcar}
+\calls{genDomainView}{qcdr}
+\calls{genDomainView}{augModemapsFromCategory}
+\calls{genDomainView}{mkDomainConstructor}
+\calls{genDomainView}{member}
+\usesdollar{genDomainView}{e}
+\usesdollar{genDomainView}{getDomainCode}
+\begin{chunk}{defun genDomainView}
+(defun |genDomainView| (viewName originalName c viewSelector)
+ (let (code cd)
+ (declare (special |$getDomainCode| |$e|))
+ (cond
+ ((and (pairp c) (eq (qcar c) 'category) (pairp (qcdr c)))
+ (|genDomainOps| viewName originalName c))
+ (t
+ (setq code
+ (if (and (pairp c) (eq (qcar c) '|SubsetCategory|)
+ (pairp (qcdr c)) (pairp (qcdr (qcdr c)))
+ (eq (qcdr (qcdr (qcdr c))) nil))
+ (second c)
+ c))
+ (setq |$e| (|augModemapsFromCategory| originalName viewName nil c |$e|))
+ (setq cd
+ (list 'let viewName
+ (list viewSelector originalName (|mkDomainConstructor| code))))
+ (unless (|member| cd |$getDomainCode|)
+ (setq |$getDomainCode| (cons cd |$getDomainCode|)))
+ viewName))))
+
+\end{chunk}
+
+\defun{genDomainOps}{genDomainOps}
+\calls{genDomainOps}{getOperationAlist}
+\calls{genDomainOps}{substNames}
+\calls{genDomainOps}{mkq}
+\calls{genDomainOps}{mkDomainConstructor}
+\calls{genDomainOps}{addModemap}
+\usesdollar{genDomainOps}{e}
+\usesdollar{genDomainOps}{ConditionalOperators}
+\usesdollar{genDomainOps}{getDomainCode}
+\begin{chunk}{defun genDomainOps}
+(defun |genDomainOps| (viewName dom cat)
+ (let (siglist oplist cd opsig i)
+ (declare (special |$e| |$ConditionalOperators| |$getDomainCode|))
+ (setq oplist (|getOperationAlist| dom dom cat))
+ (setq siglist (loop for lst in oplist collect (first lst)))
+ (setq oplist (|substNames| dom viewName dom oplist))
+ (setq cd
+ (list 'let viewName
+ (list '|mkOpVec| dom
+ (cons 'list
+ (loop for opsig in siglist do
+ collect
+ (list 'list (mkq (first opsig))
+ (cons 'list
+ (loop for mode in (rest opsig)
+ collect (|mkDomainConstructor| mode)))))))))
+ (setq |$getDomainCode| (cons cd |$getDomainCode|))
+ (setq i 0)
+ (loop for item in oplist do
+ (if (|member| (first item) |$ConditionalOperators|)
+ (setq |$e| (|addModemap| (caar item) dom (cadar item) nil
+ (list 'elt viewName (incf i)) |$e|))
+ (setq |$e| (|addModemap| (caar item) dom (cadar item) (second item)
+ (list 'elt viewName (incf i)) |$e|))))
+ viewName))
+
+\end{chunk}
+
\section{Indirect called comp routines}
In the {\bf compExpression} function there is the code:
\begin{verbatim}
@@ -16235,6 +16352,10 @@ if \verb|$InteractiveMode| then use a null outputstream
\getchunk{defun getTargetFromRhs}
\getchunk{defun get-token}
\getchunk{defun getToken}
+\getchunk{defun genDomainOps}
+\getchunk{defun genDomainViewList0}
+\getchunk{defun genDomainViewList}
+\getchunk{defun genDomainView}
\getchunk{defun giveFormalParametersValues}
\getchunk{defun hackforis}
diff --git a/changelog b/changelog
index cf2b1d5..8efc2b6 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,6 @@
+20110531 tpd src/axiom-website/patches.html 20110531.01.tpd.patch
+20110531 tpd src/interp/define.lisp treeshake compiler
+20110531 tpd books/bookvol9 treeshake compiler
20110530 tpd src/axiom-website/patches.html 20110530.01.tpd.patch
20110530 tpd src/interp/define.lisp treeshake compiler
20110530 tpd books/bookvol9 treeshake compiler
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index ed3a2d4..ef6e811 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3518,5 +3518,7 @@ src/axiom-website/download.html add ubuntu
books/bookvol9 treeshake compiler
20110530.01.tpd.patch
books/bookvol9 treeshake compiler
+20110531.01.tpd.patch
+books/bookvol9 treeshake compiler