diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet index f02a36f..fe5d500 100644 --- a/books/bookvol9.pamphlet +++ b/books/bookvol9.pamphlet @@ -6156,7 +6156,6 @@ $\rightarrow$ \calls{mkEvalableCategoryForm}{compOrCroak} \calls{mkEvalableCategoryForm}{getdatabase} \calls{mkEvalableCategoryForm}{get} -\calls{mkEvalableCategoryForm}{quotifyCategoryArgument} \calls{mkEvalableCategoryForm}{mkq} \refsdollar{mkEvalableCategoryForm}{Category} \refsdollar{mkEvalableCategoryForm}{e} @@ -9900,8 +9899,8 @@ Since we can't be sure we take the least disruptive course of action. \begin{chunk}{defun doIt} (defun |doIt| (item |$predl|) (declare (special |$predl|)) - (prog ($genno x rhs tmp3 lhsp lhs rhsp rhsCode a doms b z tmp1 - tmp2 tmp6 op body tt functionPart u code) + (prog ($genno x rhs lhsp lhs rhsp rhsCode z tmp1 tmp2 tmp6 op body tt + functionPart u code) (declare (special $genno |$e| |$EmptyMode| |$signatureOfForm| |$QuickCode| |$LocalDomainAlist| |$Representation| |$NRTopt| |$packagesUsed| |$functorsUsed| @@ -10049,6 +10048,96 @@ Since we can't be sure we take the least disruptive course of action. \end{chunk} +\defun{doItIf}{doItIf} +\begin{chunk}{defun doItIf} +(defun |doItIf| (item |$predl| |$e|) + (declare (special |$predl| |$e|)) + (labels ( + (localExtras (oldFLP) + (let (oldFLPp flp1 gv ans nils n) + (declare (special |$functorLocalParameters| |$getDomainCode|)) + (unless (eq oldFLP |$functorLocalParameters|) + (setq flp1 |$functorLocalParameters|) + (setq oldFLPp oldFLP) + (setq n 0) + (loop while oldFLPp + do + (setq oldFLPp (cdr oldFLPp)) + (setq n (1+ n))) + (setq nils (setq ans nil)) + (loop for u in flp1 + do + (if (or (atom u) + (let (result) + (loop for v in |$getDomainCode| + do + (setq result (or result + (and (pairp v) (pairp (qcdr v)) + (equal (qcar (qcdr v)) u))))) + result)) + ; Now we have to add code to compile all the elements of + ; functorLocalParameters that were added during the conditional compilation + (setq nils (cons u nils)) + (progn + (setq gv (gensym)) + (setq ans (cons (list 'let gv u) ans)) + (setq nils (CONS gv nils)))) + (setq n (1+ n))) + (setq |$functorLocalParameters| (append oldFLP (nreverse nils))) + (nreverse ans))))) + (let (p x y olde tmp1 pp xp oldFLP yp) + (declare (special |$functorLocalParameters|)) + (setq p (second item)) + (setq x (third item)) + (setq y (fourth item)) + (setq olde |$e|) + (setq tmp1 + (or (|comp| p |$Boolean| |$e|) + (|userError| (list "not a Boolean:" p)))) + (setq pp (first tmp1)) + (setq |$e| (third tmp1)) + (setq oldFLP |$functorLocalParameters|) + (unless (eq x '|noBranch|) + (|compSingleCapsuleItem| x |$predl| (|getSuccessEnvironment| p |$e|)) + (setq xp (localExtras oldFLP))) + (setq oldFLP |$functorLocalParameters|) + (unless (eq y '|noBranch|) + (|compSingleCapsuleItem| y |$predl| (|getInverseEnvironment| p olde)) + (setq yp (localExtras oldFLP))) + (rplaca item 'cond) + (rplacd item (list (cons pp (cons x xp)) (cons ''t (cons y yp))))))) + +\end{chunk} + +\defun{isMacro}{isMacro} +\calls{isMacro}{pairp} +\calls{isMacro}{qcar} +\calls{isMacro}{qcdr} +\calls{isMacro}{get} +\begin{chunk}{defun isMacro} +(defun |isMacro| (x env) + (let (op args signature body) + (when + (and (pairp x) (eq (qcar x) 'def) (pairp (qcdr x)) + (pairp (qcar (qcdr x))) (pairp (qcdr (qcdr x))) + (pairp (qcdr (qcdr (qcdr x)))) + (pairp (qcdr (qcdr (qcdr (qcdr x))))) + (eq (qcdr (qcdr (qcdr (qcdr (qcdr x))))) nil)) + (setq op (qcar (qcar (qcdr x)))) + (setq args (qcdr (qcar (qcdr x)))) + (setq signature (qcar (qcdr (qcdr x)))) + (setq body (qcar (qcdr (qcdr (qcdr (qcdr x)))))) + (when + (and (null (|get| op '|modemap| env)) + (null args) + (null (|get| op '|mode| env)) + (pairp signature) + (eq (qcdr signature) nil) + (null (qcar signature))) + body)))) + +\end{chunk} + \defplist{case}{compCase plist} \begin{chunk}{postvars} (eval-when (eval load) @@ -10170,6 +10259,11 @@ An angry JHD - August 15th., 1984 \calls{compCategory}{compCategoryItem} \calls{compCategory}{mkExplicitCategoryFunction} \calls{compCategory}{systemErrorHere} +\defsdollar{compCategory}{sigList} +\defsdollar{compCategory}{atList} +\defsdollar{compCategory}{top-level} +\refsdollar{compCategory}{sigList} +\refsdollar{compCategory}{atList} \begin{chunk}{defun compCategory} (defun |compCategory| (form mode env) (let ($top_level |$sigList| |$atList| domainOrPackage z rep) @@ -10186,8 +10280,6 @@ An angry JHD - August 15th., 1984 (setq z (qcdr (qcdr form))) (setq |$sigList| nil) (setq |$atList| nil) - (setq |$sigList| nil) - (setq |$atList| nil) (dolist (x z) (|compCategoryItem| x nil)) (setq rep (|mkExplicitCategoryFunction| domainOrPackage |$sigList| |$atList|)) @@ -10197,6 +10289,56 @@ An angry JHD - August 15th., 1984 \end{chunk} +\defun{mkExplicitCategoryFunction}{mkExplicitCategoryFunction} +\calls{mkExplicitCategoryFunction}{mkq} +\calls{mkExplicitCategoryFunction}{union} +\calls{mkExplicitCategoryFunction}{mustInstantiate} +\calls{mkExplicitCategoryFunction}{remdup} +\calls{mkExplicitCategoryFunction}{identp} +\calls{mkExplicitCategoryFunction}{nequal} +\calls{mkExplicitCategoryFunction}{wrapDomainSub} +\begin{chunk}{defun mkExplicitCategoryFunction} +(defun |mkExplicitCategoryFunction| (domainOrPackage sigList atList) + (let (body sig parameters) + (setq body + (list '|mkCategory| (mkq domainOrPackage) + (cons 'list (reverse sigList)) + (cons 'list (reverse atList)) + (mkq + (let (result) + (loop for item in sigList + do + (setq sig (car (cdaadr item))) + (setq result + (|union| result + (loop for d in sig + when (|mustInstantiate| d) + collect d)))) + result)) + nil)) + (setq parameters + (remdup + (let (result) + (loop for item in sigList + do + (setq sig (car (cdaadr item))) + (setq result + (append result + (loop for x in sig + when (and (identp x) (nequal x '$)) + collect x)))) + result))) + (|wrapDomainSub| parameters body))) + +\end{chunk} + +\defun{wrapDomainSub}{wrapDomainSub} +\begin{chunk}{defun wrapDomainSub} +(defun |wrapDomainSub| (parameters x) + (list '|DomainSubstitutionMacro| parameters x)) + +\end{chunk} + \defplist{:}{compColon plist} \begin{chunk}{postvars} (eval-when (eval load) @@ -10380,6 +10522,20 @@ An angry JHD - August 15th., 1984 \end{chunk} +\defun{makeCategoryForm}{makeCategoryForm} +\calls{makeCategoryForm}{isCategoryForm} +\calls{makeCategoryForm}{compOrCroak} +\refsdollar{makeCategoryForm}{EmptyMode} +\begin{chunk}{defun makeCategoryForm} +(defun |makeCategoryForm| (c env) + (let (tmp1) + (declare (special |$EmptyMode|)) + (when (|isCategoryForm| c env) + (setq tmp1 (|compOrCroak| c |$EmptyMode| env)) + (list (first tmp1) (third tmp1))))) + +\end{chunk} + \defplist{cons}{compCons plist} \begin{chunk}{postvars} (eval-when (eval load) @@ -21302,6 +21458,7 @@ The current input line. \getchunk{defun displayMissingFunctions} \getchunk{defun displayPreCompilationErrors} \getchunk{defun doIt} +\getchunk{defun doItIf} \getchunk{defun dollarTran} \getchunk{defun domainMember} \getchunk{defun drop} @@ -21376,6 +21533,7 @@ The current input line. \getchunk{defun isDomainSubst} \getchunk{defun isFunctor} \getchunk{defun isListConstructor} +\getchunk{defun isMacro} \getchunk{defun isSuperDomain} \getchunk{defun isTokenDelimiter} \getchunk{defun isUnionMode} @@ -21398,6 +21556,7 @@ The current input line. \getchunk{defun macroExpand} \getchunk{defun macroExpandInPlace} \getchunk{defun macroExpandList} +\getchunk{defun makeCategoryForm} \getchunk{defun makeCategoryPredicates} \getchunk{defun makeFunctorArgumentParameters} \getchunk{defun makeSimplePredicateOrNil} @@ -21416,6 +21575,7 @@ The current input line. \getchunk{defun mkConstructor} \getchunk{defun mkDatabasePred} \getchunk{defun mkEvalableCategoryForm} +\getchunk{defun mkExplicitCategoryFunction} \getchunk{defun mkNewModemapList} \getchunk{defun mkOpVec} \getchunk{defun mkUnion} @@ -21691,6 +21851,7 @@ The current input line. \getchunk{defun updateCategoryFrameForCategory} \getchunk{defun updateCategoryFrameForConstructor} +\getchunk{defun wrapDomainSub} \getchunk{defun writeLib1} \getchunk{postvars} diff --git a/changelog b/changelog index 3305292..03b75cc 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,6 @@ +20110825 tpd src/axiom-website/patches.html 20110825.01.tpd.patch +20110825 tpd src/interp/define.lisp treeshake compiler +20110825 tpd books/bookvol9 treeshake compiler 20110824 tpd src/axiom-website/patches.html 20110824.01.tpd.patch 20110824 tpd src/interp/i-util.lisp treeshake compiler 20110824 tpd src/interp/define.lisp treeshake compiler diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 414c4ff..a7da462 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -3594,5 +3594,7 @@ books/bookvol9 treeshake compiler, remove compiler.lisp
src/interp/Makefile remove foam_l
20110824.01.tpd.patch books/bookvol9 treeshake compiler
+20110825.01.tpd.patch +books/bookvol9 treeshake compiler
diff --git a/src/interp/define.lisp.pamphlet b/src/interp/define.lisp.pamphlet index 94580b8..4e41b9f 100644 --- a/src/interp/define.lisp.pamphlet +++ b/src/interp/define.lisp.pamphlet @@ -109,176 +109,6 @@ (|error| '|CategoryDefaults is a reserved name|)) ('T (|buildFunctor| |form| |signature| |data| |localParList| |e|)))) -;isMacro(x,e) == -; x is ['DEF,[op,:args],signature,specialCases,body] and -; null get(op,'modemap,e) and null args and null get(op,'mode,e) -; and signature is [nil] => body - -(DEFUN |isMacro| (|x| |e|) - (PROG (|ISTMP#1| |ISTMP#2| |op| |args| |ISTMP#3| |signature| - |ISTMP#4| |specialCases| |ISTMP#5| |body|) - (RETURN - (SEQ (COND - ((AND (PAIRP |x|) (EQ (QCAR |x|) 'DEF) - (PROGN - (SPADLET |ISTMP#1| (QCDR |x|)) - (AND (PAIRP |ISTMP#1|) - (PROGN - (SPADLET |ISTMP#2| (QCAR |ISTMP#1|)) - (AND (PAIRP |ISTMP#2|) - (PROGN - (SPADLET |op| (QCAR |ISTMP#2|)) - (SPADLET |args| (QCDR |ISTMP#2|)) - 'T))) - (PROGN - (SPADLET |ISTMP#3| (QCDR |ISTMP#1|)) - (AND (PAIRP |ISTMP#3|) - (PROGN - (SPADLET |signature| - (QCAR |ISTMP#3|)) - (SPADLET |ISTMP#4| (QCDR |ISTMP#3|)) - (AND (PAIRP |ISTMP#4|) - (PROGN - (SPADLET |specialCases| - (QCAR |ISTMP#4|)) - (SPADLET |ISTMP#5| - (QCDR |ISTMP#4|)) - (AND (PAIRP |ISTMP#5|) - (EQ (QCDR |ISTMP#5|) NIL) - (PROGN - (SPADLET |body| - (QCAR |ISTMP#5|)) - 'T))))))))) - (NULL (|get| |op| '|modemap| |e|)) (NULL |args|) - (NULL (|get| |op| '|mode| |e|)) (PAIRP |signature|) - (EQ (QCDR |signature|) NIL) - (NULL (QCAR |signature|))) - (EXIT |body|))))))) - -;doItIf(item is [.,p,x,y],$predl,$e) == -; olde:= $e -; [p',.,$e]:= comp(p,$Boolean,$e) or userError ['"not a Boolean:",p] -; oldFLP:=$functorLocalParameters -; if x^="noBranch" then -; compSingleCapsuleItem(x,$predl,getSuccessEnvironment(p,$e)) -; x':=localExtras(oldFLP) -; where localExtras(oldFLP) == -; EQ(oldFLP,$functorLocalParameters) => NIL -; flp1:=$functorLocalParameters -; oldFLP':=oldFLP -; n:=0 -; while oldFLP' repeat -; oldFLP':=CDR oldFLP' -; flp1:=CDR flp1 -; n:=n+1 -; -- Now we have to add code to compile all the elements -; -- of functorLocalParameters that were added during the -; -- conditional compilation -; nils:=ans:=[] -; for u in flp1 repeat -- is =u form always an ATOM? -; if ATOM u or (or/[v is [.,=u,:.] for v in $getDomainCode]) -; then -; nils:=[u,:nils] -; else -; gv := GENSYM() -; ans:=[['LET,gv,u],:ans] -; nils:=[gv,:nils] -; n:=n+1 -; $functorLocalParameters:=[:oldFLP,:NREVERSE nils] -; NREVERSE ans -; oldFLP:=$functorLocalParameters -; if y^="noBranch" then -; compSingleCapsuleItem(y,$predl,getInverseEnvironment(p,olde)) -; y':=localExtras(oldFLP) -; RPLACA(item,"COND") -; RPLACD(item,[[p',x,:x'],['(QUOTE T),y,:y']]) - -(DEFUN |doItIf,localExtras| (|oldFLP|) - (PROG (|oldFLP'| |flp1| |ISTMP#1| |gv| |ans| |nils| |n|) - (declare (special |$functorLocalParameters| |$getDomainCode|)) - (RETURN - (SEQ (IF (EQ |oldFLP| |$functorLocalParameters|) (EXIT NIL)) - (SPADLET |flp1| |$functorLocalParameters|) - (SPADLET |oldFLP'| |oldFLP|) (SPADLET |n| 0) - (DO () ((NULL |oldFLP'|) NIL) - (SEQ (SPADLET |oldFLP'| (CDR |oldFLP'|)) - (SPADLET |flp1| (CDR |flp1|)) - (EXIT (SPADLET |n| (PLUS |n| 1))))) - (SPADLET |nils| (SPADLET |ans| NIL)) - (DO ((G170185 |flp1| (CDR G170185)) (|u| NIL)) - ((OR (ATOM G170185) - (PROGN (SETQ |u| (CAR G170185)) NIL)) - NIL) - (SEQ (IF (OR (ATOM |u|) - (PROG (G170191) - (SPADLET G170191 NIL) - (RETURN - (DO ((G170199 NIL G170191) - (G170200 |$getDomainCode| - (CDR G170200)) - (|v| NIL)) - ((OR G170199 (ATOM G170200) - (PROGN - (SETQ |v| (CAR G170200)) - NIL)) - G170191) - (SEQ (EXIT - (SETQ G170191 - (OR G170191 - (AND (PAIRP |v|) - (PROGN - (SPADLET |ISTMP#1| - (QCDR |v|)) - (AND (PAIRP |ISTMP#1|) - (EQUAL (QCAR |ISTMP#1|) - |u|)))))))))))) - (SPADLET |nils| (CONS |u| |nils|)) - (SEQ (SPADLET |gv| (GENSYM)) - (SPADLET |ans| - (CONS - (CONS 'LET - (CONS |gv| (CONS |u| NIL))) - |ans|)) - (EXIT (SPADLET |nils| (CONS |gv| |nils|))))) - (EXIT (SPADLET |n| (PLUS |n| 1))))) - (SPADLET |$functorLocalParameters| - (APPEND |oldFLP| (NREVERSE |nils|))) - (EXIT (NREVERSE |ans|)))))) - -(DEFUN |doItIf| (|item| |$predl| |$e|) - (DECLARE (SPECIAL |$predl| |$e|)) - (PROG (|p| |x| |y| |olde| |LETTMP#1| |p'| |x'| |oldFLP| |y'|) - (declare (special |$functorLocalParameters|)) - (RETURN - (PROGN - (SPADLET |p| (CADR |item|)) - (SPADLET |x| (CADDR |item|)) - (SPADLET |y| (CADDDR |item|)) - (SPADLET |olde| |$e|) - (SPADLET |LETTMP#1| - (OR (|comp| |p| |$Boolean| |$e|) - (|userError| - (CONS "not a Boolean:" - (CONS |p| NIL))))) - (SPADLET |p'| (CAR |LETTMP#1|)) - (SPADLET |$e| (CADDR |LETTMP#1|)) - (SPADLET |oldFLP| |$functorLocalParameters|) - (COND - ((NEQUAL |x| '|noBranch|) - (|compSingleCapsuleItem| |x| |$predl| - (|getSuccessEnvironment| |p| |$e|)) - (SPADLET |x'| (|doItIf,localExtras| |oldFLP|)))) - (SPADLET |oldFLP| |$functorLocalParameters|) - (COND - ((NEQUAL |y| '|noBranch|) - (|compSingleCapsuleItem| |y| |$predl| - (|getInverseEnvironment| |p| |olde|)) - (SPADLET |y'| (|doItIf,localExtras| |oldFLP|)))) - (RPLACA |item| 'COND) - (RPLACD |item| - (CONS (CONS |p'| (CONS |x| |x'|)) - (CONS (CONS ''T (CONS |y| |y'|)) NIL))))))) - ;--compSingleCapsuleIf(x,predl,e,$functorLocalParameters) == ;-- compSingleCapsuleItem(x,predl,e) ; @@ -317,190 +147,6 @@ (|convert| T$ |m|)) ('T NIL)))))) -;quotifyCategoryArgument x == MKQ x - -;(DEFUN |quotifyCategoryArgument| (|x|) (MKQ |x|)) - -;makeCategoryForm(c,e) == -; not isCategoryForm(c,e) => nil -; [x,m,e]:= compOrCroak(c,$EmptyMode,e) -; [x,e] - -(DEFUN |makeCategoryForm| (|c| |e|) - (PROG (|LETTMP#1| |x| |m|) - (declare (special |$EmptyMode|)) - (RETURN - (COND - ((NULL (|isCategoryForm| |c| |e|)) NIL) - ('T (SPADLET |LETTMP#1| (|compOrCroak| |c| |$EmptyMode| |e|)) - (SPADLET |x| (CAR |LETTMP#1|)) (SPADLET |m| (CADR |LETTMP#1|)) - (SPADLET |e| (CADDR |LETTMP#1|)) (CONS |x| (CONS |e| NIL))))))) - -;compCategory(x,m,e) == -; $TOP__LEVEL: local:= true -; (m:= resolve(m,["Category"]))=["Category"] and x is ['CATEGORY, -; domainOrPackage,:l] => -; $sigList: local := nil -; $atList: local := nil -; $sigList:= $atList:= nil -; for x in l repeat compCategoryItem(x,nil) -; rep:= mkExplicitCategoryFunction(domainOrPackage,$sigList,$atList) -; --if inside compDefineCategory, provide for category argument substitution -; [rep,m,e] -; systemErrorHere '"compCategory" - -(DEFUN |compCategory| (|x| |m| |e|) - (PROG ($TOP_LEVEL |$sigList| |$atList| |ISTMP#1| |domainOrPackage| - |l| |rep|) - (DECLARE (SPECIAL $TOP_LEVEL |$sigList| |$atList|)) - (RETURN - (SEQ (PROGN - (SPADLET $TOP_LEVEL 'T) - (COND - ((AND (BOOT-EQUAL - (SPADLET |m| - (|resolve| |m| - (CONS '|Category| NIL))) - (CONS '|Category| NIL)) - (PAIRP |x|) (EQ (QCAR |x|) 'CATEGORY) - (PROGN - (SPADLET |ISTMP#1| (QCDR |x|)) - (AND (PAIRP |ISTMP#1|) - (PROGN - (SPADLET |domainOrPackage| - (QCAR |ISTMP#1|)) - (SPADLET |l| (QCDR |ISTMP#1|)) - 'T)))) - (SPADLET |$sigList| NIL) (SPADLET |$atList| NIL) - (SPADLET |$sigList| (SPADLET |$atList| NIL)) - (DO ((G170487 |l| (CDR G170487)) (|x| NIL)) - ((OR (ATOM G170487) - (PROGN (SETQ |x| (CAR G170487)) NIL)) - NIL) - (SEQ (EXIT (|compCategoryItem| |x| NIL)))) - (SPADLET |rep| - (|mkExplicitCategoryFunction| - |domainOrPackage| |$sigList| |$atList|)) - (CONS |rep| (CONS |m| (CONS |e| NIL)))) - ('T (|systemErrorHere| "compCategory")))))))) - -;mkExplicitCategoryFunction(domainOrPackage,sigList,atList) == -; body:= -; ["mkCategory",MKQ domainOrPackage,['LIST,:REVERSE sigList],['LIST,: -; REVERSE atList],MKQ domList,nil] where -; domList() == -; ("UNION"/[fn sig for ["QUOTE",[[.,sig,:.],:.]] in sigList]) where -; fn sig == [D for D in sig | mustInstantiate D] -; parameters:= -; REMDUP -; ("append"/ -; [[x for x in sig | IDENTP x and x^='_$] -; for ["QUOTE",[[.,sig,:.],:.]] in sigList]) -; wrapDomainSub(parameters,body) - -(DEFUN |mkExplicitCategoryFunction,fn| (|sig|) - (PROG () - (RETURN - (SEQ (PROG (G170517) - (SPADLET G170517 NIL) - (RETURN - (DO ((G170523 |sig| (CDR G170523)) (D NIL)) - ((OR (ATOM G170523) - (PROGN (SETQ D (CAR G170523)) NIL)) - (NREVERSE0 G170517)) - (SEQ (EXIT (COND - ((|mustInstantiate| D) - (SETQ G170517 (CONS D G170517))))))))))))) - -(DEFUN |mkExplicitCategoryFunction| - (|domainOrPackage| |sigList| |atList|) - (PROG (|body| |sig| |parameters|) - (RETURN - (SEQ (PROGN - (SPADLET |body| - (CONS '|mkCategory| - (CONS (MKQ |domainOrPackage|) - (CONS (CONS 'LIST - (REVERSE |sigList|)) - (CONS - (CONS 'LIST - (REVERSE |atList|)) - (CONS - (MKQ - (PROG (G170546) - (SPADLET G170546 NIL) - (RETURN - (DO - ((G170552 |sigList| - (CDR G170552)) - (G170533 NIL)) - ((OR (ATOM G170552) - (PROGN - (SETQ G170533 - (CAR G170552)) - NIL) - (PROGN - (PROGN - (SPADLET |sig| - (CAR - (CDAADR - G170533))) - G170533) - NIL)) - G170546) - (SEQ - (EXIT - (SETQ G170546 - (|union| G170546 - (|mkExplicitCategoryFunction,fn| - |sig|))))))))) - (CONS NIL NIL))))))) - (SPADLET |parameters| - (REMDUP (PROG (G170559) - (SPADLET G170559 NIL) - (RETURN - (DO ((G170565 |sigList| - (CDR G170565)) - (G170542 NIL)) - ((OR (ATOM G170565) - (PROGN - (SETQ G170542 - (CAR G170565)) - NIL) - (PROGN - (PROGN - (SPADLET |sig| - (CAR (CDAADR G170542))) - G170542) - NIL)) - G170559) - (SEQ - (EXIT - (SETQ G170559 - (APPEND G170559 - (PROG (G170577) - (SPADLET G170577 NIL) - (RETURN - (DO - ((G170583 |sig| - (CDR G170583)) - (|x| NIL)) - ((OR (ATOM G170583) - (PROGN - (SETQ |x| - (CAR G170583)) - NIL)) - (NREVERSE0 G170577)) - (SEQ - (EXIT - (COND - ((AND (IDENTP |x|) - (NEQUAL |x| '$)) - (SETQ G170577 - (CONS |x| - G170577)))))))))))))))))) - (|wrapDomainSub| |parameters| |body|)))))) - ;wrapDomainSub(parameters,x) == ; ["DomainSubstitutionMacro",parameters,x]