diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet
index c9f17b6..7090eff 100644
--- a/books/bookvol9.pamphlet
+++ b/books/bookvol9.pamphlet
@@ -7295,7 +7295,7 @@ $\rightarrow$
 \calls{addDomain}{unknownTypeError}
 \begin{chunk}{defun addDomain}
 (defun |addDomain| (domain env)
- (let (s name tmp1 tmp2 target)
+ (let (s name tmp1)
   (cond
    ((atom domain)
      (cond
@@ -7327,6 +7327,103 @@ $\rightarrow$
 
 \end{chunk}
 
+\defun{getDomainsInScope}{getDomainsInScope}
+The way XLAMs work:
+\begin{verbatim}
+ ((XLAM ($1 $2 $3) (SETELT $1 0 $3)) X "c" V) ==> (SETELT X 0 V)
+\end{verbatim}
+\calls{getDomainsInScope}{get}
+\refsdollar{getDomainsInScope}{CapsuleDomainsInScope}
+\refsdollar{getDomainsInScope}{insideCapsuleFunctionIfTrue}
+\begin{chunk}{defun getDomainsInScope}
+(defun |getDomainsInScope| (env)
+  (declare (special |$CapsuleDomainsInScope| |$insideCapsuleFunctionIfTrue|))
+  (if |$insideCapsuleFunctionIfTrue|
+     |$CapsuleDomainsInScope|
+     (|get| '|$DomainsInScope| 'special env)))
+
+\end{chunk}
+
+\defun{putDomainsInScope}{putDomainsInScope}
+\calls{putDomainsInScope}{getDomainsInScope}
+\calls{putDomainsInScope}{put}
+\calls{putDomainsInScope}{delete}
+\calls{putDomainsInScope}{say}
+\calls{putDomainsInScope}{member}
+\defsdollar{putDomainsInScope}{CapsuleDomainsInScope}
+\refsdollar{putDomainsInScope}{insideCapsuleFunctionIfTrue}
+\begin{chunk}{defun putDomainsInScope}
+(defun |putDomainsInScope| (x env)
+ (let (z newValue)
+ (declare (special |$CapsuleDomainsInScope| |$insideCapsuleFunctionIfTrue|))
+  (setq z (|getDomainsInScope| env))
+  (when (|member| x z) (say "****** Domain: " x " already in scope"))
+  (setq newValue (cons x (|delete| x z)))
+  (if |$insideCapsuleFunctionIfTrue|
+    (progn
+      (setq |$CapsuleDomainsInScope| newValue) 
+      env)
+    (|put| '|$DomainsInScope| 'special newValue env))))
+
+\end{chunk}
+
+\defun{isSuperDomain}{isSuperDomain}
+\calls{isSuperDomain}{isSubset}
+\calls{isSuperDomain}{lassoc}
+\calls{isSuperDomain}{opOf}
+\calls{isSuperDomain}{get}
+\begin{chunk}{defun isSuperDomain}
+(defun |isSuperDomain| (domainForm domainFormp env)
+ (cond
+   ((|isSubset| domainFormp domainForm env) t)
+   ((and (eq domainForm '|Rep|) (eq domainFormp '$)) t)
+   (t (lassoc (|opOf| domainFormp) (|get| domainForm '|SubDomain| env)))))
+
+\end{chunk}
+
+\defun{addNewDomain}{addNewDomain}
+\calls{addNewDomain}{augModemapsFromDomain}
+\begin{chunk}{defun addNewDomain}
+(defun |addNewDomain| (domain env)
+  (|augModemapsFromDomain| domain domain env))
+
+\end{chunk}
+
+\defun{augModemapsFromDomain}{augModemapsFromDomain}
+\calls{augModemapsFromDomain}{member}
+\calls{augModemapsFromDomain}{kar}
+\calls{augModemapsFromDomain}{getDomainsInScope}
+\calls{augModemapsFromDomain}{getdatabase}
+\calls{augModemapsFromDomain}{opOf}
+\calls{augModemapsFromDomain}{addNewDomain}
+\calls{augModemapsFromDomain}{listOrVectorElementNode}
+\calls{augModemapsFromDomain}{stripUnionTags}
+\calls{augModemapsFromDomain}{augModemapsFromDomain1}
+\refsdollar{augModemapsFromDomain}{Category}
+\refsdollar{augModemapsFromDomain}{DummyFunctorNames}
+\begin{chunk}{defun augModemapsFromDomain}
+(defun |augModemapsFromDomain| (name functorForm env)
+ (let (curDomainsInScope u innerDom dl)
+ (declare (special |$Category| |$DummyFunctorNames|))
+  (cond
+   ((|member| (or (kar name) name) |$DummyFunctorNames|)
+     env)
+   ((or (equal name |$Category|) (|isCategoryForm| name env))
+     env)
+   ((|member| name (setq curDomainsInScope  (|getDomainsInScope| env)))
+     env)
+   (t
+    (when (setq u (getdatabase (|opOf| functorForm) 'superdomain))
+      (setq env (|addNewDomain| (car u) env)))
+    (when (setq innerDom (|listOrVectorElementMode| name))
+      (setq env (|addDomain| innerDom env)))
+    (when (and (pairp name) (eq (qcar name) '|Union|))
+      (dolist (d (|stripUnionTags| (qcdr name)))
+        (setq env (|addDomain| d env))))
+    (|augModemapsFromDomain1| name functorForm env)))))
+
+\end{chunk}
+
 \defun{getModemap}{getModemap}
 \calls{getModemap}{get}
 \calls{getModemap}{compApplyModemap}
@@ -16898,6 +16995,7 @@ if \verb|$InteractiveMode| then use a null outputstream
 \getchunk{defun addModemapKnown}
 \getchunk{defun addModemap0}
 \getchunk{defun addModemap1}
+\getchunk{defun addNewDomain}
 \getchunk{defun add-parens-and-semis-to-line}
 \getchunk{defun Advance-Char}
 \getchunk{defun advance-token}
@@ -16907,6 +17005,7 @@ if \verb|$InteractiveMode| then use a null outputstream
 \getchunk{defun argsToSig}
 \getchunk{defun augModemapsFromCategory}
 \getchunk{defun augModemapsFromCategoryRep}
+\getchunk{defun augModemapsFromDomain}
 
 \getchunk{defun blankp}
 \getchunk{defun bumperrorcount}
@@ -17026,6 +17125,7 @@ if \verb|$InteractiveMode| then use a null outputstream
 \getchunk{defun freelist}
 
 \getchunk{defun get-a-line}
+\getchunk{defun getDomainsInScope}
 \getchunk{defun getModemap}
 \getchunk{defun getModemapList}
 \getchunk{defun getModemapListFromDomain}
@@ -17055,6 +17155,7 @@ if \verb|$InteractiveMode| then use a null outputstream
 \getchunk{defun initial-substring-p}
 \getchunk{defun is-console}
 \getchunk{defun isListConstructor}
+\getchunk{defun isSuperDomain}
 \getchunk{defun isTokenDelimiter}
 
 \getchunk{defun killColons}
@@ -17289,6 +17390,7 @@ if \verb|$InteractiveMode| then use a null outputstream
 \getchunk{defun primitiveType}
 \getchunk{defun print-defun}
 \getchunk{defun push-reduction}
+\getchunk{defun putDomainsInScope}
 
 \getchunk{defun quote-if-string}
 
diff --git a/changelog b/changelog
index 9f4bc58..3e71e24 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,8 @@
+20110712 tpd src/axiom-website/patches.html 20110712.01.tpd.patch
+20110712 tpd src/interp/lisplib.lisp move function from modemap.lisp
+20110712 tpd src/interp/modemap.lisp removed file
+20110712 tpd src/interp/Makefile remove modemap.lisp
+20110712 tpd books/bookvol9 treeshake compiler, remove modemap.lisp
 20110710 tpd src/axiom-website/patches.html 20110710.01.tpd.patch
 20110710 tpd src/interp/modemap.lisp treeshake compiler
 20110710 tpd books/bookvol9 treeshake compiler
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index f6093d7..b737b78 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -3536,5 +3536,7 @@ books/bookvol9 treeshake compiler<br/>
 books/bookvol9 treeshake compiler<br/>
 <a href="patches/20110710.01.tpd.patch">20110710.01.tpd.patch</a>
 books/bookvol9 treeshake compiler<br/>
+<a href="patches/20110712.01.tpd.patch">20110712.01.tpd.patch</a>
+books/bookvol9 treeshake compiler, remove modemap.lisp<br/>
  </body>
 </html>
diff --git a/src/interp/Makefile.pamphlet b/src/interp/Makefile.pamphlet
index 3005b10..faec9d1 100644
--- a/src/interp/Makefile.pamphlet
+++ b/src/interp/Makefile.pamphlet
@@ -183,7 +183,7 @@ OBJS= ${OUT}/vmlisp.${O}      \
       ${OUT}/category.${O}    ${OUT}/compiler.${O} \
       ${OUT}/define.${O}      ${OUT}/functor.${O}  \
       ${OUT}/info.${O}        ${OUT}/iterator.${O} \
-      ${OUT}/modemap.${O}     ${OUT}/nruncomp.${O} \
+      ${OUT}/nruncomp.${O} \
       ${OUT}/package.${O}     ${OUT}/htcheck.${O}
 
 
@@ -2482,30 +2482,6 @@ ${MID}/match.lisp: ${IN}/match.lisp.pamphlet
 
 @
 
-\subsection{modemap.lisp}
-<<modemap.o (OUT from MID)>>=
-${OUT}/modemap.${O}: ${MID}/modemap.lisp
-	@ echo 136 making ${OUT}/modemap.${O} from ${MID}/modemap.lisp
-	@ ( cd ${MID} ; \
-	  if [ -z "${NOISE}" ] ; then \
-	   echo '(progn  (compile-file "${MID}/modemap.lisp"' \
-             ':output-file "${OUT}/modemap.${O}") (${BYE}))' | ${DEPSYS} ; \
-	  else \
-	   echo '(progn  (compile-file "${MID}/modemap.lisp"' \
-             ':output-file "${OUT}/modemap.${O}") (${BYE}))' | ${DEPSYS} \
-             >${TMP}/trace ; \
-	  fi )
-
-@
-<<modemap.lisp (MID from IN)>>=
-${MID}/modemap.lisp: ${IN}/modemap.lisp.pamphlet
-	@ echo 137 making ${MID}/modemap.lisp from ${IN}/modemap.lisp.pamphlet
-	@ (cd ${MID} ; \
-          echo '(tangle "${IN}/modemap.lisp.pamphlet" "*" "modemap.lisp")' \
-        | ${OBJ}/${SYS}/bin/lisp )
-
-@
-
 \subsection{msgdb.lisp}
 <<msgdb.o (OUT from MID)>>=
 ${OUT}/msgdb.${O}: ${MID}/msgdb.lisp
@@ -3517,9 +3493,6 @@ clean:
 <<match.o (OUT from MID)>>
 <<match.lisp (MID from IN)>>
 
-<<modemap.o (OUT from MID)>>
-<<modemap.lisp (MID from IN)>>
-
 <<msgdb.o (OUT from MID)>>
 <<msgdb.lisp (MID from IN)>>
 
diff --git a/src/interp/lisplib.lisp.pamphlet b/src/interp/lisplib.lisp.pamphlet
index 7930461..4b9de1a 100644
--- a/src/interp/lisplib.lisp.pamphlet
+++ b/src/interp/lisplib.lisp.pamphlet
@@ -2172,6 +2172,111 @@
              (CONS |functorForm| (CONS '| is an unknown mode| NIL)))
          |e|)))))
 
+
+;addConstructorModemaps(name,form is [functorName,:.],e) ==
+;  $InteractiveMode: local:= nil
+;  e:= putDomainsInScope(name,e) --frame
+;  fn := GET(functorName,"makeFunctionList")
+;  [funList,e]:= FUNCALL(fn,name,form,e)
+;  for [op,sig,opcode] in funList repeat
+;    if opcode is [sel,dc,n] and sel='ELT then
+;          nsig := substitute("$$$",name,sig)
+;          nsig := substitute('$,"$$$",substitute("$$",'$,nsig))
+;          opcode := [sel,dc,nsig]
+;    e:= addModemap(op,name,sig,true,opcode,e)
+;  e
+
+(DEFUN |addConstructorModemaps| (|name| |form| |e|)
+  (PROG (|$InteractiveMode| |functorName| |fn| |LETTMP#1| |funList|
+            |op| |sig| |sel| |ISTMP#1| |dc| |ISTMP#2| |n| |nsig|
+            |opcode|)
+    (DECLARE (SPECIAL |$InteractiveMode|))
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |functorName| (CAR |form|))
+             (SPADLET |$InteractiveMode| NIL)
+             (SPADLET |e| (|putDomainsInScope| |name| |e|))
+             (SPADLET |fn| (GETL |functorName| '|makeFunctionList|))
+             (SPADLET |LETTMP#1| (FUNCALL |fn| |name| |form| |e|))
+             (SPADLET |funList| (CAR |LETTMP#1|))
+             (SPADLET |e| (CADR |LETTMP#1|))
+             (DO ((G166774 |funList| (CDR G166774))
+                  (G166732 NIL))
+                 ((OR (ATOM G166774)
+                      (PROGN (SETQ G166732 (CAR G166774)) NIL)
+                      (PROGN
+                        (PROGN
+                          (SPADLET |op| (CAR G166732))
+                          (SPADLET |sig| (CADR G166732))
+                          (SPADLET |opcode| (CADDR G166732))
+                          G166732)
+                        NIL))
+                  NIL)
+               (SEQ (EXIT (PROGN
+                            (COND
+                              ((AND (PAIRP |opcode|)
+                                    (PROGN
+                                      (SPADLET |sel| (QCAR |opcode|))
+                                      (SPADLET |ISTMP#1|
+                                       (QCDR |opcode|))
+                                      (AND (PAIRP |ISTMP#1|)
+                                       (PROGN
+                                         (SPADLET |dc|
+                                          (QCAR |ISTMP#1|))
+                                         (SPADLET |ISTMP#2|
+                                          (QCDR |ISTMP#1|))
+                                         (AND (PAIRP |ISTMP#2|)
+                                          (EQ (QCDR |ISTMP#2|) NIL)
+                                          (PROGN
+                                            (SPADLET |n|
+                                             (QCAR |ISTMP#2|))
+                                            'T)))))
+                                    (BOOT-EQUAL |sel| 'ELT))
+                               (SPADLET |nsig|
+                                        (MSUBST '$$$ |name| |sig|))
+                               (SPADLET |nsig|
+                                        (MSUBST '$ '$$$
+                                         (MSUBST '$$ '$ |nsig|)))
+                               (SPADLET |opcode|
+                                        (CONS |sel|
+                                         (CONS |dc| (CONS |nsig| NIL))))))
+                            (SPADLET |e|
+                                     (|addModemap| |op| |name| |sig| 'T
+                                      |opcode| |e|))))))
+             |e|)))))
+
+
+;substituteCategoryArguments(argl,catform) ==
+;  argl:= substitute("$$","$",argl)
+;  arglAssoc:= [[INTERNL("#",STRINGIMAGE i),:a] for i in 1.. for a in argl]
+;  SUBLIS(arglAssoc,catform)
+
+(DEFUN |substituteCategoryArguments| (|argl| |catform|)
+  (PROG (|arglAssoc|)
+    (RETURN
+      (SEQ (PROGN
+             (SPADLET |argl| (MSUBST '$$ '$ |argl|))
+             (SPADLET |arglAssoc|
+                      (PROG (G166422)
+                        (SPADLET G166422 NIL)
+                        (RETURN
+                          (DO ((|i| 1 (QSADD1 |i|))
+                               (G166428 |argl| (CDR G166428))
+                               (|a| NIL))
+                              ((OR (ATOM G166428)
+                                   (PROGN
+                                     (SETQ |a| (CAR G166428))
+                                     NIL))
+                               (NREVERSE0 G166422))
+                            (SEQ (EXIT (SETQ G166422
+                                        (CONS
+                                         (CONS
+                                          (INTERNL '|#|
+                                           (STRINGIMAGE |i|))
+                                          |a|)
+                                         G166422))))))))
+             (SUBLIS |arglAssoc| |catform|))))))
+
 ;getSlotFromCategoryForm ([op,:argl],index) ==
 ;  u:= eval [op,:MAPCAR('MKQ,TAKE(#argl,$FormalMapVariableList))]
 ;  null VECP u =>
diff --git a/src/interp/modemap.lisp.pamphlet b/src/interp/modemap.lisp.pamphlet
deleted file mode 100644
index d300b24..0000000
--- a/src/interp/modemap.lisp.pamphlet
+++ /dev/null
@@ -1,250 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/interp modemap.lisp}
-\author{The Axiom Team}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\begin{chunk}{*}
-
-(IN-PACKAGE "BOOT" )
-
-;-- next definition RPLACs, and hence causes problems.
-;-- In ptic., SubResGcd in SparseUnivariatePolynomial is miscompiled
-;--mergeModemap(entry:=((mc,:sig),:.),modemapList,e) ==
-;--    for (mmtail:= (((mc',:sig'),:.),:.)) in tails modemapList do
-;--       mc=mc' or isSuperDomain(mc',mc,e)  =>
-;--         RPLACD(mmtail,(first mmtail,: rest mmtail))
-;--         RPLACA(mmtail,entry)
-;--         entry := nil
-;--         return modemapList
-;--     if entry then (:modemapList,entry) else modemapList
-;
-;isSuperDomain(domainForm,domainForm',e) ==
-;  isSubset(domainForm',domainForm,e) => true
-;  domainForm='Rep and domainForm'="$" => true --regard $ as a subdomain of Rep
-;  LASSOC(opOf domainForm',get(domainForm,"SubDomain",e))
-
-(DEFUN |isSuperDomain| (|domainForm| |domainForm'| |e|)
-  (COND
-    ((|isSubset| |domainForm'| |domainForm| |e|) 'T)
-    ((AND (BOOT-EQUAL |domainForm| '|Rep|)
-          (BOOT-EQUAL |domainForm'| '$))
-     'T)
-    ('T
-     (LASSOC (|opOf| |domainForm'|)
-             (|get| |domainForm| '|SubDomain| |e|)))))
-
-;--substituteForRep(entry is [[mc,:sig],:.],curModemapList) ==
-;--  --change 'Rep to "$" unless the resulting signature is already in $
-;--  MEMBER(entry':= substitute("$",'Rep,entry),curModemapList) =>
-;--    [entry,:curModemapList]
-;--  [entry,entry',:curModemapList]
-;
-;addNewDomain(domain,e) ==
-;  augModemapsFromDomain(domain,domain,e)
-
-(DEFUN |addNewDomain| (|domain| |e|)
-  (|augModemapsFromDomain| |domain| |domain| |e|))
-
-;augModemapsFromDomain(name,functorForm,e) ==
-;  MEMBER(KAR name or name,$DummyFunctorNames) => e
-;  name=$Category or isCategoryForm(name,e) => e
-;  MEMBER(name,curDomainsInScope:= getDomainsInScope e) => e
-;  if u:= GETDATABASE(opOf functorForm,'SUPERDOMAIN) then
-;    e:= addNewDomain(first u,e)
-;    --need code to handle parameterized SuperDomains
-;  if innerDom:= listOrVectorElementMode name then e:= addDomain(innerDom,e)
-;  if name is ["Union",:dl] then for d in stripUnionTags dl
-;                         repeat e:= addDomain(d,e)
-;  augModemapsFromDomain1(name,functorForm,e)
-
-(DEFUN |augModemapsFromDomain| (|name| |functorForm| |e|)
-  (PROG (|curDomainsInScope| |u| |innerDom| |dl|)
-  (declare (special |$Category| |$DummyFunctorNames|))
-    (RETURN
-      (SEQ (COND
-             ((|member| (OR (KAR |name|) |name|) |$DummyFunctorNames|)
-              |e|)
-             ((OR (BOOT-EQUAL |name| |$Category|)
-                  (|isCategoryForm| |name| |e|))
-              |e|)
-             ((|member| |name|
-                  (SPADLET |curDomainsInScope|
-                           (|getDomainsInScope| |e|)))
-              |e|)
-             ('T
-              (COND
-                ((SPADLET |u|
-                          (GETDATABASE (|opOf| |functorForm|)
-                              'SUPERDOMAIN))
-                 (SPADLET |e| (|addNewDomain| (CAR |u|) |e|))))
-              (COND
-                ((SPADLET |innerDom|
-                          (|listOrVectorElementMode| |name|))
-                 (SPADLET |e| (|addDomain| |innerDom| |e|))))
-              (COND
-                ((AND (PAIRP |name|) (EQ (QCAR |name|) '|Union|)
-                      (PROGN (SPADLET |dl| (QCDR |name|)) 'T))
-                 (DO ((G166400 (|stripUnionTags| |dl|)
-                          (CDR G166400))
-                      (|d| NIL))
-                     ((OR (ATOM G166400)
-                          (PROGN (SETQ |d| (CAR G166400)) NIL))
-                      NIL)
-                   (SEQ (EXIT (SPADLET |e| (|addDomain| |d| |e|)))))))
-              (|augModemapsFromDomain1| |name| |functorForm| |e|)))))))
-
-;     --see LISPLIB BOOT
-;
-;substituteCategoryArguments(argl,catform) ==
-;  argl:= substitute("$$","$",argl)
-;  arglAssoc:= [[INTERNL("#",STRINGIMAGE i),:a] for i in 1.. for a in argl]
-;  SUBLIS(arglAssoc,catform)
-
-(DEFUN |substituteCategoryArguments| (|argl| |catform|)
-  (PROG (|arglAssoc|)
-    (RETURN
-      (SEQ (PROGN
-             (SPADLET |argl| (MSUBST '$$ '$ |argl|))
-             (SPADLET |arglAssoc|
-                      (PROG (G166422)
-                        (SPADLET G166422 NIL)
-                        (RETURN
-                          (DO ((|i| 1 (QSADD1 |i|))
-                               (G166428 |argl| (CDR G166428))
-                               (|a| NIL))
-                              ((OR (ATOM G166428)
-                                   (PROGN
-                                     (SETQ |a| (CAR G166428))
-                                     NIL))
-                               (NREVERSE0 G166422))
-                            (SEQ (EXIT (SETQ G166422
-                                        (CONS
-                                         (CONS
-                                          (INTERNL '|#|
-                                           (STRINGIMAGE |i|))
-                                          |a|)
-                                         G166422))))))))
-             (SUBLIS |arglAssoc| |catform|))))))
-
-;addConstructorModemaps(name,form is [functorName,:.],e) ==
-;  $InteractiveMode: local:= nil
-;  e:= putDomainsInScope(name,e) --frame
-;  fn := GET(functorName,"makeFunctionList")
-;  [funList,e]:= FUNCALL(fn,name,form,e)
-;  for [op,sig,opcode] in funList repeat
-;    if opcode is [sel,dc,n] and sel='ELT then
-;          nsig := substitute("$$$",name,sig)
-;          nsig := substitute('$,"$$$",substitute("$$",'$,nsig))
-;          opcode := [sel,dc,nsig]
-;    e:= addModemap(op,name,sig,true,opcode,e)
-;  e
-
-(DEFUN |addConstructorModemaps| (|name| |form| |e|)
-  (PROG (|$InteractiveMode| |functorName| |fn| |LETTMP#1| |funList|
-            |op| |sig| |sel| |ISTMP#1| |dc| |ISTMP#2| |n| |nsig|
-            |opcode|)
-    (DECLARE (SPECIAL |$InteractiveMode|))
-    (RETURN
-      (SEQ (PROGN
-             (SPADLET |functorName| (CAR |form|))
-             (SPADLET |$InteractiveMode| NIL)
-             (SPADLET |e| (|putDomainsInScope| |name| |e|))
-             (SPADLET |fn| (GETL |functorName| '|makeFunctionList|))
-             (SPADLET |LETTMP#1| (FUNCALL |fn| |name| |form| |e|))
-             (SPADLET |funList| (CAR |LETTMP#1|))
-             (SPADLET |e| (CADR |LETTMP#1|))
-             (DO ((G166774 |funList| (CDR G166774))
-                  (G166732 NIL))
-                 ((OR (ATOM G166774)
-                      (PROGN (SETQ G166732 (CAR G166774)) NIL)
-                      (PROGN
-                        (PROGN
-                          (SPADLET |op| (CAR G166732))
-                          (SPADLET |sig| (CADR G166732))
-                          (SPADLET |opcode| (CADDR G166732))
-                          G166732)
-                        NIL))
-                  NIL)
-               (SEQ (EXIT (PROGN
-                            (COND
-                              ((AND (PAIRP |opcode|)
-                                    (PROGN
-                                      (SPADLET |sel| (QCAR |opcode|))
-                                      (SPADLET |ISTMP#1|
-                                       (QCDR |opcode|))
-                                      (AND (PAIRP |ISTMP#1|)
-                                       (PROGN
-                                         (SPADLET |dc|
-                                          (QCAR |ISTMP#1|))
-                                         (SPADLET |ISTMP#2|
-                                          (QCDR |ISTMP#1|))
-                                         (AND (PAIRP |ISTMP#2|)
-                                          (EQ (QCDR |ISTMP#2|) NIL)
-                                          (PROGN
-                                            (SPADLET |n|
-                                             (QCAR |ISTMP#2|))
-                                            'T)))))
-                                    (BOOT-EQUAL |sel| 'ELT))
-                               (SPADLET |nsig|
-                                        (MSUBST '$$$ |name| |sig|))
-                               (SPADLET |nsig|
-                                        (MSUBST '$ '$$$
-                                         (MSUBST '$$ '$ |nsig|)))
-                               (SPADLET |opcode|
-                                        (CONS |sel|
-                                         (CONS |dc| (CONS |nsig| NIL))))))
-                            (SPADLET |e|
-                                     (|addModemap| |op| |name| |sig| 'T
-                                      |opcode| |e|))))))
-             |e|)))))
-
-;--The way XLAMs work:
-;--  ((XLAM ($1 $2 $3) (SETELT $1 0 $3)) X "c" V) ==> (SETELT X 0 V)
-;
-;getDomainsInScope e ==
-;  $insideCapsuleFunctionIfTrue=true => $CapsuleDomainsInScope
-;  get("$DomainsInScope","special",e)
-
-(DEFUN |getDomainsInScope| (|e|)
-  (declare (special |$CapsuleDomainsInScope| |$insideCapsuleFunctionIfTrue|))
-  (COND
-    ((BOOT-EQUAL |$insideCapsuleFunctionIfTrue| 'T)
-     |$CapsuleDomainsInScope|)
-    ('T (|get| '|$DomainsInScope| 'special |e|))))
-
-;putDomainsInScope(x,e) ==
-;  l:= getDomainsInScope e
-;  if MEMBER(x,l) then SAY("****** Domain: ",x," already in scope")
-;  newValue:= [x,:DELETE(x,l)]
-;  $insideCapsuleFunctionIfTrue => ($CapsuleDomainsInScope:= newValue; e)
-;  put("$DomainsInScope","special",newValue,e)
-;
-
-(DEFUN |putDomainsInScope| (|x| |e|)
-  (PROG (|l| |newValue|)
-  (declare (special |$CapsuleDomainsInScope| |$insideCapsuleFunctionIfTrue|))
-    (RETURN
-      (PROGN
-        (SPADLET |l| (|getDomainsInScope| |e|))
-        (COND
-          ((|member| |x| |l|)
-           (SAY "****** Domain: " |x|
-                " already in scope")))
-        (SPADLET |newValue| (CONS |x| (|delete| |x| |l|)))
-        (COND
-          (|$insideCapsuleFunctionIfTrue|
-              (SPADLET |$CapsuleDomainsInScope| |newValue|) |e|)
-          ('T (|put| '|$DomainsInScope| 'special |newValue| |e|)))))))
-
-\end{chunk}
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}
