$ od -c -N 50000 [eris]<LispCore>SOURCES>CMLDEFFER!38 0000000 ( D E F I N E - F I L E - I N F 0000020 O 247 R E A D T A B L E " X C 0000040 L " 247 P A C K A G E " I N T 0000060 E R L I S P " ) \r 006 001 ( f i l e 0000100 c r e a t e d " 3 1 - O c t - 0000120 8 6 2 2 : 4 1 : 3 1 " 006 004 { 0000140 e r i s } < l i s p c o r e > s 0000160 o u r c e s > c m l d e f f e r 0000200 . \ ; 3 8 006 001 2 7 9 9 1 \r 0000220 \r | c h a n g e s | 0000240 | t o : | ( f u n c t i o 0000260 n s \ \ d e f i n e - t y p e 0000300 - s a v e - d e f n ) \r \r 0000320 | p r e v i o u s | | d 0000340 a t e : | " 3 1 - O c t - 8 6 0000360 1 7 : 0 5 : 4 8 " { e r i s 0000400 } < l i s p c o r e > s o u r c 0000420 e s > c m l d e f f e r . \ ; 3 0000440 7 ) \r \r \r ; C o p y r i g h t 0000460 ( c ) 1 9 8 6 , 1 9 0 0 0000500 b y X e r o x C o r p o r a 0000520 t i o n . A l l r i g h t 0000540 s r e s e r v e d . \r \r ( p r 0000560 e t t y c o m p r i n t c m l 0000600 d e f f e r c o m s ) \r \r ( r p 0000620 a q q 006 002 c m l d e f f e r c 0000640 o m s 006 001 ( ( * | ; ; ; | 0000660 \r " D E F - D E F I N E - 0000700 T Y P E a n d D E F D E F I 0000720 N E R - - Y o u r O n e - 0000740 S t o p P r o v i d e r s o 0000760 f C u s t o m i z e d F i l 0001000 e M a n a g e r F a c i l i 0001020 t i e s . " \r 0001040 0001060 ) \r 0001100 ( * | ; ; | 0001120 " B E V E R Y C A R E F U L 0001140 C H A N G I N G A N Y T H I 0001160 N G I N T H I S F I L E ! 0001200 ! ! I t i s h e a v i l 0001220 y s e l f - r e f e r e n t i 0001240 a l a n d t h i c k w i t 0001260 h b o o t s t r a p p i n g 0001300 p r o b l e m s . A l l b 0001320 u t t h e m o s t t r i v 0001340 i a l c h a n g e s ( a n d 0001360 s o m e o f t h o s e ) 0001400 a r e v e r y t r i c k y 0001420 t o m a k e w i t h o u t 0001440 b l o w i n g y o u r s e l f 0001460 o u t o f t h e w a t e 0001500 r . . . Y o u h a v e b 0001520 e e n w a r n e d . " \r 0001540 0001560 ) \r 0001600 ( i 0001620 n i t v a r s ( f i l e p k g 0001640 f l g n i l ) ) \r 0001660 0001700 ( * | ; ; | " T h e d e f 0001720 i n e r d a t a s t r u c t 0001740 u r e s a n d m a n i p u l 0001760 a t i o n f u n c t i o n s " 0002000 ) \r 0002020 ( v a r i a b l 0002040 e s * d e f i n i t i o n - h 0002060 a s h - t a b l e * ) \r 0002100 0002120 ( f u n c t i o n s p p r 0002140 i n t - d e f i n e r r e m o 0002160 v e - c o m m e n t s ) \r 0002200 0002220 ( v a r i a b l e s * r 0002240 e m o v e - i n t e r l i s p - 0002260 c o m m e n t s * ) \r 0002300 0002320 ( f u n c t i o n s \ \ d e 0002340 f i n e - t y p e - d e l d e f 0002360 \ \ d e f i n e - t y p e - g 0002400 e t d e f \ \ d e f i n e - t 0002420 y p e - s a v e - d e f n ) \r 0002440 0002460 ( * | ; ; | " P r 0002500 o t o t y p e d e f i n i t i 0002520 o n f a c i l i t y " ) \r 0002540 0002560 ( v a r i a b l e s x 0002600 c l : : * d e f i n i t i o n - 0002620 p r o t o t y p e s * ) \r 0002640 0002660 ( f u n c t i o n s x c 0002700 l : : a d d - p r o t o t y p e 0002720 - f n x c l : : p r o t o t y 0002740 p e - d e f n - t y p e s \r 0002760 0003000 x c l : 0003020 : p r o t o t y p e - d e f i n 0003040 e r s - f o r - t y p e x c l 0003060 : : m a k e - p r o t o t y p e 0003100 ) \r 0003120 ( * | ; ; | 0003140 " T h e g r o u n d w o r k 0003160 f o r b o o t s t r a p p i n 0003200 g " ) \r 0003220 ( d e f i n 0003240 e - t y p e s d e f i n e - t 0003260 y p e s f u n c t i o n s v 0003300 a r i a b l e s ) \r 0003320 0003340 ( * | ; ; | " D e f D e f i 0003360 n e r i t s e l f a n d f 0003400 r i e n d s " ) \r 0003420 ( 0003440 f u n c t i o n s s i : : e x 0003460 p a n s i o n - f u n c t i o n 0003500 s i : : m a c r o - f u n c a 0003520 l l ) \r 0003540 ( f u n c t 0003560 i o n s d e f d e f i n e r 0003600 \ \ d e l e t e - d e f i n e r 0003620 d e f - d e f i n e - t y p e 0003640 w i t h o u t - f i l e p k g 0003660 ) \r 0003700 ( * | ; ; | 0003720 " T h e m o s t c o m m o n 0003740 l y - u s e d d e f i n e r s 0003760 " ) \r 0004000 ( f u n c t i 0004020 o n s c l : d e f u n d e f 0004040 i n l i n e d e f m a c r o ) 0004060 \r 0004100 ( f u n c t i o n 0004120 s c l : d e f v a r c l : d 0004140 e f p a r a m e t e r c l : d 0004160 e f c o n s t a n t d e f g l 0004200 o b a l v a r \r 0004220 0004240 d e f g l o b a l p 0004260 a r a m e t e r ) \r 0004300 0004320 ( * | ; ; | " D o n ' t n 0004340 o t e c h a n g e s t o t 0004360 h e s e p r o p e r t i e s / 0004400 v a r i a b l e s " ) \r 0004420 0004440 ( p r o p p r o p t y p e 0004460 m a c r o - f n u n d e f i 0004500 n e r s d e f i n e r - f o r 0004520 d e f i n e d - b y ) \r 0004540 0004560 ( * | ; ; | " A r r a 0004600 n g e f o r t h e c o r r 0004620 e c t c o m p i l e r t o 0004640 b e u s e d . " ) \r 0004660 0004700 ( p r o p f i l e t y p e 0004720 c m l d e f f e r ) ) ) \r \r \r \r 0004740 006 004 ( * | ; ; ; | \r " D E F 0004760 - D E F I N E - T Y P E a n d 0005000 D E F D E F I N E R - - Y 0005020 o u r O n e - S t o p P r o 0005040 v i d e r s o f C u s t o m 0005060 i z e d F i l e M a n a g e 0005100 r F a c i l i t i e s . " ) 006 0005120 001 \r \r \r \r \r 006 004 ( * | ; ; | 0005140 \r " B E V E R Y C A R E F U 0005160 L C H A N G I N G A N Y T H 0005200 I N G I N T H I S F I L E 0005220 ! ! ! I t i s h e a v i 0005240 l y s e l f - r e f e r e n t 0005260 i a l a n d t h i c k w i 0005300 t h b o o t s t r a p p i n g 0005320 p r o b l e m s . A l l 0005340 b u t t h e m o s t t r i 0005360 v i a l c h a n g e s ( a n 0005400 d s o m e o f t h o s e ) 0005420 a r e v e r y t r i c k y 0005440 t o m a k e w i t h o u t 0005460 b l o w i n g y o u r s e l 0005500 f o u t o f t h e w a t 0005520 e r . . . Y o u h a v e 0005540 b e e n w a r n e d . " \r ) 006 0005560 001 \r \r \r ( r p a q ? 006 002 f i l 0005600 e p k g f l g 006 001 n i l ) \r \r 0005620 \r \r 006 004 ( * | ; ; | " T h e 0005640 d e f i n e r d a t a s t 0005660 r u c t u r e s a n d m a n 0005700 i p u l a t i o n f u n c t i 0005720 o n s " ) 006 001 \r \r ( d e f g l o 0005740 b a l v a r 006 002 * d e f i n i 0005760 t i o n - h a s h - t a b l e * 0006000 006 001 ( * | ; ; ; | " T h i 0006020 s i s t h e r e p o s i t 0006040 o r y f o r a l l D E F D 0006060 E F I N E R s ' d e f i n i t 0006100 i o n s . I t i s a t 0006120 w o - l e v e l h a s h - t a 0006140 b l e . T h e f i r s t 0006160 l e v e l h a s h e s o n 0006200 t h e n a m e o f t h e 0006220 t y p e o f t h e d e f i 0006240 n i t i o n , u s i n g a n 0006260 E Q t e s t . E a c h 0006300 t y p e m a p s t o a n o 0006320 t h e r h a s h - t a b l e 0006340 t h a t , i n t u r n , m 0006360 a p s t h e n a m e s o f 0006400 i t e m s i n t o t h e i 0006420 r d e f i n i t i o n s . 0006440 T h e s e c o n d - l e v e l 0006460 h a s h - t a b l e s u s e 0006500 a n E Q U A L t e s t s 0006520 o a s t o a l l o w n o 0006540 n - a t o m i c ` ` n a m e s 0006560 ' ' . " \r 0006600 0006620 ) 0006640 006 003 006 001 006 003 ( * 0006660 | ; ; | \r 006 001 0006700 006 003 " H A S H A R R A Y 0006720 i s u s e d h e r e i n 0006740 s t e a d o f M A K E - H A 0006760 S H - A R R A Y b e c a u s e 0007000 i t ' s e a r l i e r i n 0007020 t h e l o a d u p . . . " ) 0007040 006 001 \r ( h a s h a r r a y 0007060 2 0 ) ) \r \r ( c l : d e f u n 0007100 006 002 p p r i n t - d e f i n e 0007120 r 006 001 ( d e f i n e - e x p r 0007140 e s s i o n ) \r ( c o n d 0007160 \r ( ( c l : a t o m 0007200 ( c d r d e f i n e - e x p 0007220 r e s s i o n ) ) 006 003 006 001 0007240 006 003 ( * \ ; " 0007260 H a n d l e t h e c a s e s 0007300 ( d e f u n ) a n d ( d e 0007320 f u n . f o o ) " ) 006 001 \r 0007340 ( p r i n t o u t 0007360 n i l " ( " | . P 2 | ( c 0007400 a r d e f i n e - e x p r e s 0007420 s i o n ) ) \r ( c 0007440 l : u n l e s s ( n u l l ( 0007460 c d r d e f i n e - e x p r e 0007500 s s i o n ) ) \r 0007520 ( p r i n t o u t 0007540 n i l " . " ) \r 0007560 ( p r i n t d 0007600 e f ( c d r d e f i n e - e 0007620 x p r e s s i o n ) \r 0007640 0007660 t t ) ) \r ( p r 0007700 i n 1 " ) " n i l ) \r 0007720 n i l ) \r ( 0007740 t ( l e t ( ( d e f i n e r 0007760 ( 006 002 | p o p | 006 001 d e f i 0010000 n e - e x p r e s s i o n ) ) \r 0010020 ( 0010040 d e f i n e d ( 006 002 | p o p | 0010060 006 001 d e f i n e - e x p r e s 0010100 s i o n ) ) \r 0010120 ( c u r r e n t ( 0010140 d s p x p o s i t i o n ) ) \r 0010160 ( \ 0010200 # r p a r s ) ) \r 0010220 ( 006 002 d e c l a r 0010240 e 006 001 ( s p e c v a r s \ # 0010260 r p a r s ) ) \r 0010300 ( p r i n t o u t 0010320 n i l " ( " | . P 2 | d e 0010340 f i n e r \ , ) \r 0010360 ( 006 002 | i f | 006 0010400 001 ( l i s t p d e f i n e d 0010420 ) \r 0010440 006 002 | t h e n | 006 001 ( 0010460 p r i n t o u t n i l " ( " 0010500 . f o n t p r e t t y c o m 0010520 f o n t | . P 2 | ( c a r 0010540 d e f i n e d ) \r 0010560 0010600 . f o n t d 0010620 e f a u l t f o n t \ , \ # 0010640 ( p r i n t d e f ( c d r 0010660 d e f i n e d ) \r 0010700 * 0010760 t t t ) \r 0011000 0011020 " 0011040 ) " ) \r 0011060 006 002 | e l s e | 006 001 ( 0011100 p r i n t o u t n i l . f o 0011120 n t p r e t t y c o m f o n t 0011140 | . P 2 | d e f i n e d . 0011160 f o n t d e f a u l t f o n t 0011200 ) ) \r 0011220 ( 006 002 | i f | 006 001 ( l i s t 0011240 p ( c a r d e f i n e - e x 0011260 p r e s s i o n ) ) \r 0011300 006 002 | 0011320 t h e n | 006 001 ( s p a c e s 0011340 1 ) \r 0011360 ( p r i n 0011400 t d e f ( 006 002 | p o p | 006 001 0011420 d e f i n e - e x p r e s s i o 0011440 n ) \r 0011460 0011500 t n i l ) ) \r 0011520 ( 006 002 | i f | 006 0011540 001 ( o r ( s t r i n g p ( 0011560 c a r d e f i n e - e x p r e 0011600 s s i o n ) ) \r 0011620 0011640 ( e q ( c a r ( l i s t p 0011660 ( c a r d e f i n e - e x p r 0011700 e s s i o n ) ) ) \r 0011720 0011740 c o m m e n t f l g 0011760 ) ) \r 0012000 006 002 | t h e n | 006 001 0012020 ( s p a c e s 1 ) \r 0012040 0012060 ( p r i n t d e f ( 006 002 0012100 | p o p | 006 001 d e f i n e - e 0012120 x p r e s s i o n ) \r 0012140 0012160 t t ) ) \r 0012200 ( 006 0012220 002 | i f | 006 001 ( n o t ( f i 0012240 t p d e f i n e - e x p r e s 0012260 s i o n t t ) ) \r 0012300 006 002 | 0012320 t h e n | 006 001 ( t e r p r i ) 0012340 \r 0012360 ( d s p x p o 0012400 s i t i o n c u r r e n t ) \r 0012420 0012440 ( s p a c e s 0012460 3 ) \r 0012500 006 002 | e l s e | 006 001 ( s 0012520 p a c e s 1 ) ) \r 0012540 ( p r i n t d e 0012560 f d e f i n e - e x p r e s s 0012600 i o n t t t ) \r 0012620 ( p r i n 1 0012640 " ) " n i l ) \r 0012660 ( t e r p r i n 0012700 i l ) ) ) ) ) \r \r ( c l : d e f 0012720 u n 006 002 r e m o v e - c o m m 0012740 e n t s 006 001 ( x ) 006 003 006 001 0012760 0013000 006 003 ( * | ; ; ; | \r 006 0013020 001 0013040 0013060 006 003 " R e m o 0013100 v e s S E d i t - s t y l e 0013120 c o m m e n t s f r o m t h 0013140 e g i v e n l i s t s t r 0013160 u c t u r e . " ) 006 001 \r ( 0013200 c o n d \r ( ( n l i 0013220 s t p x ) \r x ) 0013240 \r ( ( a n d ( e q 0013260 ( c a a r x ) \r 0013300 ' * ) \r 0013320 ( o r ( f 0013340 m e m b ( c a d a r x ) \r 0013360 0013400 ' ( \ ; | ; ; | 0013420 | ; ; ; | ) ) 006 003 006 001 0013440 0013460 006 003 ( * \ ; " a s e d i t 0013500 c o m m e n t " ) 006 001 \r 0013520 ( e q 0013540 * r e m o v e - i n t e r l i 0013560 s p - c o m m e n t s * t ) 006 0013600 003 006 001 006 003 0013620 ( * \ ; " a l w a y s s t 0013640 r i p " ) 006 001 \r 0013660 ( p r o g n ( 0013700 006 002 | i f | 006 001 ( e q * r e 0013720 m o v e - i n t e r l i s p - c 0013740 o m m e n t s * ' : w a r n ) 0013760 \r 0014000 006 002 | t 0014020 h e n | 006 001 ( c l : w a r n 0014040 " P o s s i b l e c o m m e n 0014060 t n o t s t r i p p e d ~ 0014100 S " x ) ) \r 0014120 n i 0014140 l ) ) ) \r ( r e m 0014160 o v e - c o m m e n t s ( c d 0014200 r x ) ) ) \r ( t 0014220 ( p r o g ( ( a ( r e m o v 0014240 e - c o m m e n t s ( c a r 0014260 x ) ) ) \r 0014300 ( d ( r e m o v e - 0014320 c o m m e n t s ( c d r x ) 0014340 ) ) ) \r 0014360 ( r e t u r n ( c o n d 0014400 \r 0014420 ( ( a n d 0014440 ( e q a ( c a r x ) ) \r 0014460 * 0014520 ( e q d ( c d r x ) ) ) \r 0014540 0014560 x ) \r 0014600 0014620 ( t ( c o n s 0014640 a d ) ) ) ) ) ) ) ) \r \r ( c 0014660 l : d e f v a r 006 002 * r e m o 0014700 v e - i n t e r l i s p - c o m 0014720 m e n t s * 006 001 ' : w a r n 0014740 \r 0014760 0015000 " E i t h e 0015020 r N I L ( d o n ' t ) T 0015040 ( a l w a y s d o ) o r : 0015060 W A R N ( d o n ' t a n d 0015100 w a r n ) " \r ) \r \r ( c l 0015120 : d e f u n 006 002 \ \ d e f i n 0015140 e - t y p e - d e l d e f 006 001 0015160 ( n a m e t y p e ) 006 003 006 001 0015200 006 003 ( * | ; ; | 0015220 \r 006 001 0015240 * 0015300 006 003 " D E L E T E d 0015320 e f i n i t i o n o f d e f 0015340 i n e r - d e f i n e d N A M 0015360 E a s T Y P E " ) 006 001 \r 0015400 ( l e t * ( ( h t ( c l 0015420 : g e t h a s h t y p e * d 0015440 e f i n i t i o n - h a s h - t 0015460 a b l e * ) ) ) \r 0015500 ( a n d h t ( r e m h a 0015520 s h n a m e h t ) ) \r 0015540 ( 006 002 f o r 006 001 f 0015560 n 006 002 i n 006 001 ( g e t t y 0015600 p e ' u n d e f i n e r s ) 0015620 006 002 d o 006 001 ( c l : f u n c a 0015640 l l f n n a m e ) ) \r 0015660 n a m e ) ) \r \r ( c 0015700 l : d e f u n 006 002 \ \ d e f i 0015720 n e - t y p e - g e t d e f 006 001 0015740 ( n a m e t y p e o p t i 0015760 o n s ) 006 003 006 001 \r 0016000 * 0016040 006 003 ( * 0016060 | ; ; | " G E T D E F m e 0016100 t h o d f o r a l l d e f 0016120 i n e r s . T h e E D I T 0016140 i s s o t h a t w h e n 0016160 y o u s a y E D I T D E F 0016200 y o u g e t a c o p y 0016220 & c a n k n o w w h e n 0016240 y o u m a d e e d i t s . " 0016260 ) 006 001 \r ( l e t * ( ( c 0016300 l : h a s h - t a b l e ( c l 0016320 : g e t h a s h t y p e * d 0016340 e f i n i t i o n - h a s h - t 0016360 a b l e * ) ) \r 0016400 ( d e f n ( a n d c l : 0016420 h a s h - t a b l e ( c l : g 0016440 e t h a s h n a m e c l : h 0016460 a s h - t a b l e ) ) ) ) \r 0016500 ( c l : i f ( e 0016520 q m e m b ' e d i t o p t i 0016540 o n s ) \r 0016560 ( c l : c o p y - t r 0016600 e e d e f n ) \r 0016620 d e f n ) ) ) 0016640 \r \r ( c l : d e f u n 006 002 \ \ 0016660 d e f i n e - t y p e - s a v e 0016700 - d e f n 006 001 ( n a m e t y 0016720 p e d e f i n i t i o n ) \r 0016740 ( l e t ( ( c l : h a s h 0016760 - t a b l e ( c l : g e t h a 0017000 s h t y p e * d e f i n i t 0017020 i o n - h a s h - t a b l e * ) 0017040 ) ) \r ( c l : w 0017060 h e n ( n u l l c l : h a s 0017100 h - t a b l e ) \r 0017120 ( c l : w a r n 0017140 " C o u l d n ' t f i n d 0017160 a h a s h - t a b l e f o r 0017200 ~ S d e f i n i t i o n s . 0017220 ~ % O n e w i l l b e c r 0017240 e a t e d . " t y p e ) \r 0017260 ( s e 0017300 t q c l : h a s h - t a b l e 0017320 ( c l : s e t f ( c l : g e 0017340 t h a s h t y p e * d e f i 0017360 n i t i o n - h a s h - t a b l 0017400 e * ) \r 0017420 0017440 ( c 0017460 l : m a k e - h a s h - t a b l 0017500 e : t e s t ' c l : e q u a 0017520 l : s i z e 5 0 : r e h a 0017540 s h - s i z e \r 0017560 * 0017620 5 0 ) ) ) ) 0017640 \r ( l e t ( ( 0017660 o l d - d e f i n i t i o n ( 0017700 c l : g e t h a s h n a m e 0017720 c l : h a s h - t a b l e ) ) ) 0017740 \r ( c 0017760 l : u n l e s s ( c l : e q u 0020000 a l d e f i n i t i o n o l 0020020 d - d e f i n i t i o n ) \r 0020040 0020060 ( c l : w h e n ( a n d 0020100 o l d - d e f i n i t i o n ( 0020120 n e q d f n f l g t ) ) \r 0020140 0020160 ( c l : f o 0020200 r m a t * t e r m i n a l - i 0020220 o * " ~ & N e w ~ A d e f 0020240 i n i t i o n f o r ~ S " 0020260 t y p e n a m e ) ) \r 0020300 0020320 ( c l : s e t f ( c l : g e t 0020340 h a s h n a m e c l : h a s 0020360 h - t a b l e ) \r 0020400 0020420 d e f i n i t i o n ) \r 0020440 0020460 ( m a r k a s c h a n g 0020500 e d n a m e t y p e ( c l 0020520 : i f o l d - d e f i n i t i 0020540 o n ' c h a n g e d ' d e f 0020560 i n e d ) ) ) ) ) ) \r \r \r \r \r 006 0020600 004 ( * | ; ; | " P r o t o t 0020620 y p e d e f i n i t i o n f 0020640 a c i l i t y " ) 006 001 \r \r ( d e 0020660 f g l o b a l v a r 006 002 x c l 0020700 : : * d e f i n i t i o n - p r 0020720 o t o t y p e s * 006 001 n i l 0020740 006 003 006 001 006 003 ( * | ; ; | 0020760 " A n a s s o c i a t i o n 0021000 l i s t m a p p i n g f i 0021020 l e - m a n a g e r t y p e s 0021040 t o a s s o c i a t i o n 0021060 l i s t s f r o m d e f i n 0021100 e r - n a m e s t o p r o t 0021120 o t y p e - f u n c t i o n s " 0021140 ) 006 001 \r ) \r \r ( c l : d e f u n 0021160 006 002 x c l : : a d d - p r o t 0021200 o t y p e - f n 006 001 ( t y p e 0021220 c l : : d e f i n e r c l : 0021240 : p r o t o t y p e - f n ) \r 0021260 ( l e t * ( ( c l : : l o 0021300 o k u p - t y p e ( c l : a s 0021320 s o c t y p e x c l : : * d 0021340 e f i n i t i o n - p r o t o t 0021360 y p e s * ) ) \r 0021400 ( c l : : l o o k u p - d e 0021420 f i n e r ( c l : a s s o c 0021440 c l : : d e f i n e r ( c d r 0021460 c l : : l o o k u p - t y p e 0021500 ) ) ) ) 006 003 006 001 \r 0021520 * 0021560 006 003 ( * 0021600 | ; ; | " I f t h i s d e 0021620 f i n e r d i d n ' t a l r 0021640 e a d y h a v e a P R O T 0021660 O T Y P E - F N , a d d o n 0021700 e . I f i t a l r e a d 0021720 y h a d o n e , c h a n g 0021740 e i t t o t h e n e w 0021760 o n e . " ) 006 001 \r 0022000 ( c l : i f ( n u l l c 0022020 l : : l o o k u p - d e f i n e 0022040 r ) \r 0022060 ( c l : p u s h ( c o n 0022100 s c l : : d e f i n e r c l 0022120 : : p r o t o t y p e - f n ) \r 0022140 0022160 ( c d r c l : : 0022200 l o o k u p - t y p e ) ) \r 0022220 ( c 0022240 l : s e t f ( c d r c l : : 0022260 l o o k u p - d e f i n e r ) \r 0022300 0022320 c l : : p r o t o 0022340 t y p e - f n ) ) ) ) \r \r ( c l 0022360 : d e f u n 006 002 x c l : : p r 0022400 o t o t y p e - d e f n - t y p 0022420 e s 006 001 n i l 006 003 006 001 0022440 006 003 ( * | ; ; ; 0022460 | \r 006 001 006 003 " R e t u r n 0022500 a l i s t o f t h e f i 0022520 l e - m a n a g e r t y p e s 0022540 f o r w h i c h s o m e 0022560 d e f i n e r c a n p r o v 0022600 i d e a p r o t o t y p e 0022620 d e f i n i t i o n . " ) 006 001 \r 0022640 * 0022700 ( 006 002 f o r 006 001 0022720 x 006 002 o n 006 001 x c l : : * 0022740 d e f i n i t i o n - p r o t o 0022760 t y p e s * \r 0023000 * 0023040 006 002 w h e n 006 001 ( c a d r 0023060 x ) 006 002 c o l l e c t 006 001 0023100 ( c a r x ) ) ) \r \r ( c l : d 0023120 e f u n 006 002 x c l : : p r o t 0023140 o t y p e - d e f i n e r s - f 0023160 o r - t y p e 006 001 ( t y p e ) 0023200 006 003 006 001 006 003 ( * | ; ; ; | 0023220 " R e t u r n a l i s t o 0023240 f t h e d e f i n e r s t 0023260 h a t c l a i m t o b e 0023300 a b l e t o p r o v i d e 0023320 a p r o t o t y p e d e f i 0023340 n i t i o n o f t h e g i 0023360 v e n t y p e . " ) 006 001 \r 0023400 ( 006 002 f o r 006 001 x 006 002 o n 0023420 006 001 ( c l : g e t f x c l : 0023440 : * d e f i n i t i o n - p r o 0023460 t o t y p e s * t y p e ) 006 0023500 002 b y 006 001 c d d r 006 002 w h e 0023520 n 006 001 ( c a d r x ) \r 0023540 006 002 c o l l e c t 006 001 ( 0023560 c a r x ) ) ) \r \r ( c l : d e 0023600 f u n 006 002 x c l : : m a k e - 0023620 p r o t o t y p e 006 001 ( c l : 0023640 : n a m e t y p e c l : : d 0023660 e f i n e r ) ( l e t ( ( c 0023700 l : : p r o t o t y p e - f n 0023720 ( c l : g e t f \r 0023740 * 0024040 ( c l : 0024060 g e t f \r 0024100 * 0024160 x 0024200 c l : : * d e f i n i t i o n - 0024220 p r o t o t y p e s * \r 0024240 * 0024360 t y p e ) \r 0024400 * 0024520 c l : : d e f i n e r ) ) ) \r 0024540 * 0024620 ( a 0024640 n d c l : : p r o t o t y p e 0024660 - f n \r 0024700 * 0024760 ( c l : f u n c 0025000 a l l c l : : p r o t o t y p 0025020 e - f n \r 0025040 * 0025140 c l : : n a m e t y p e c 0025160 l : : d e f i n e r ) \r 0025200 * 0025300 ) ) ) \r \r \r \r \r 006 004 ( * | ; ; 0025320 | " T h e g r o u n d w o r 0025340 k f o r b o o t s t r a p p 0025360 i n g " ) 006 001 \r \r ( d e f - d e 0025400 f i n e - t y p e 006 002 d e f i 0025420 n e - t y p e s 006 001 " D e f i 0025440 n i t i o n t y p e " ) \r \r 0025460 ( d e f - d e f i n e - t y p e 0025500 006 002 f u n c t i o n s 006 001 " 0025520 f u n c t i o n s o r m a c 0025540 r o s " : u n d e f i n e r 0025560 c l : f m a k u n b o u n d ) \r 0025600 \r ( d e f - d e f i n e - t y p 0025620 e 006 002 v a r i a b l e s 006 001 0025640 " C o m m o n L i s p v a r 0025660 i a b l e s " ) \r \r \r \r \r 006 004 0025700 ( * | ; ; | " D e f D e f i 0025720 n e r i t s e l f a n d f 0025740 r i e n d s " ) 006 001 \r \r ( c l : 0025760 d e f u n 006 002 s i : : e x p a 0026000 n s i o n - f u n c t i o n 006 001 0026020 ( s i : : n a m e s i : : a 0026040 r g - l i s t s i : : b o d y 0026060 ) 006 003 006 001 \r 0026100 * 0026140 006 003 ( * | ; 0026160 ; ; | " S h a r e d c o d e 0026200 b e t w e e n D E F M A C R 0026220 O a n d D E F D E F I N E R 0026240 . T a k e s t h e p a r 0026260 t s o f a D E F M A C R O 0026300 a n d r e t u r n s t w o 0026320 v a l u e s : a L A M B D 0026340 A f o r m f o r t h e e 0026360 x p a n s i o n f u n c t i o 0026400 n , a n d t h e d o c u m 0026420 e n t a t i o n s t r i n g 0026440 f o u n d , i f a n y . " ) 0026460 006 001 \r ( c l : m u l t i p 0026500 l e - v a l u e - b i n d ( s 0026520 i : : p a r s e d - b o d y s 0026540 i : : p a r s e d - d e c l a r 0026560 a t i o n s s i : : p a r s e 0026600 d - d o c s t r i n g ) \r 0026620 ( p a r s e - d e 0026640 f m a c r o s i : : a r g - l 0026660 i s t ' s i : : $ $ m a c r o 0026700 - f o r m s i : : b o d y s 0026720 i : : n a m e n i l : e n v 0026740 i r o n m e n t \r 0026760 ' s i : : $ 0027000 $ m a c r o - e n v i r o n m e 0027020 n t ) \r ( c 0027040 l : v a l u e s ` ( c l : l a 0027060 m b d a ( s i : : $ $ m a c r 0027100 o - f o r m s i : : $ $ m a c 0027120 r o - e n v i r o n m e n t ) \r 0027140 0027160 , @ s 0027200 i : : p a r s e d - d e c l a r 0027220 a t i o n s \r 0027240 0027260 ( c l : b l o c k , s 0027300 i : : n a m e , s i : : p a r 0027320 s e d - b o d y ) ) s i : : p 0027340 a r s e d - d o c s t r i n g ) 0027360 ) ) \r \r ( d e f m a c r o 006 002 0027400 s i : : m a c r o - f u n c a l 0027420 l 006 001 ( s i : : e x p a n s i 0027440 o n - f u n c t i o n s i : : 0027460 m a c r o - c a l l s i : : e 0027500 n v ) 006 003 006 001 \r 0027520 * 0027560 006 003 ( * 0027600 | ; ; ; | " U s e d b y D 0027620 E F D E F I N E R a s a m 0027640 e c h a n i s m f o r d e l 0027660 a y i n g m a c r o - e x p a 0027700 n s i o n u n t i l a f t e 0027720 r c h e c k i n g t h e v 0027740 a l u e o f D F N F L G . 0027760 T h e a r g u m e n t s ( 0030000 u n e v a l u a t e d ) a r e 0030020 a m a c r o - e x p a n s i 0030040 o n f u n c t i o n a n d 0030060 a c a l l o n t h a t m 0030100 a c r o . T h e c a l l 0030120 t o M A C R O - F U N C A L L 0030140 s h o u l d e x p a n d i 0030160 n t o t h e r e s u l t o 0030200 f e x p a n d i n g t h e 0030220 g i v e n m a c r o - c a l l 0030240 . " ) 006 001 \r ( c l : f u n 0030260 c a l l s i : : e x p a n s i 0030300 o n - f u n c t i o n s i : : 0030320 m a c r o - c a l l s i : : e 0030340 n v ) ) \r \r ( d e f d e f i n e 0030360 r ( 006 002 d e f d e f i n e r 006 0030400 001 ( : n a m e ( c l : l a m 0030420 b d a ( c l : : w h o l e ) \r 0030440 * 0030500 ( l e t ( ( c l : 0030520 : n a m e ( c l : s e c o n d 0030540 c l : : w h o l e ) ) ) \r 0030560 * 0030620 ( c l : i f 0030640 ( c l : c o n s p c l : : n a 0030660 m e ) \r 0030700 * 0030740 ( c a r c l : : n 0030760 a m e ) \r 0031000 * 0031040 c l : : n a m e ) 0031060 ) ) ) \r 0031100 ( : p r 0031120 o t o t y p e ( c l : l a m b 0031140 d a ( c l : : n a m e ) \r 0031160 * 0031220 ( a n d ( c 0031240 l : s y m b o l p c l : : n a 0031260 m e ) \r 0031300 * 0031340 ` ( d e f d e f i n e r 0031360 ( 006 002 \ \ \ , 006 001 c l : : n 0031400 a m e ) " T y p e " ( " A r 0031420 g - l i s t " ) \r 0031440 * 0031540 " B o 0031560 d y " ) \r ) ) ) \r 0031600 0031620 ( : u n d e f i n e r c l : 0031640 : \ \ d e l e t e - d e f i n e 0031660 r ) ) \r f u n c t i o n s 0031700 \r ( c l : : n a m e t y 0031720 p e c l : : a r g - l i s t 0031740 & b o d y c l : : b o d y ) \r 0031760 ( l e t * \r ( ( c 0032000 l : : o p t i o n s ( c o n d 0032020 \r 0032040 ( ( c l : c o n s p 0032060 c l : : n a m e ) \r 0032100 0032120 ( p r o g 1 ( c d r c l : 0032140 : n a m e ) \r 0032160 0032200 ( c l : s e t q c l : 0032220 : n a m e ( c a r c l : : n 0032240 a m e ) ) ) ) \r 0032260 ( t 0032300 n i l ) ) ) \r ( c l : 0032320 : n a m e - f n ' c l : s e c 0032340 o n d ) \r ( c l : : u 0032360 n d e f i n e r n i l ) \r 0032400 ( c l : : p r o t o t y p 0032420 e - f n n i l ) ) \r ( 0032440 006 002 f o r 006 001 c l : : o p t - 0032460 l i s t 006 002 i n 006 001 c l : : 0032500 o p t i o n s 006 002 d o 006 001 ( 0032520 c a s e ( c a r c l : : o p 0032540 t - l i s t ) \r 0032560 * 0032620 ( ( : u n d e f i n 0032640 e r ) \r 0032660 * 0032720 ( c l : s e t q c l : : 0032740 u n d e f i n e r ( c a d r 0032760 c l : : o p t - l i s t ) ) ) \r 0033000 * 0033040 ( ( 0033060 : n a m e ) \r 0033100 * 0033140 ( c l : s e t q c 0033160 l : : n a m e - f n ( c a d r 0033200 c l : : o p t - l i s t ) ) ) 0033220 \r 0033240 0033260 ( 0033300 ( : p r o t o t y p e ) \r 0033320 * 0033360 ( c l : 0033400 s e t q c l : : p r o t o t y 0033420 p e - f n ( c a d r c l : : 0033440 o p t - l i s t ) ) ) \r 0033460 * 0033520 ( c l : o t 0033540 h e r w i s e ( c l : c e r r 0033560 o r " I g n o r e t h e b 0033600 o g u s o p t i o n " \r 0033620 * 0033700 " U n r 0033720 e c o g n i z e d o p t i o n 0033740 t o D e f D e f i n e r : 0033760 ~ S " \r 0034000 * 0034060 c l : : o p t - 0034100 l i s t ) ) ) ) \r ( c l 0034120 : m u l t i p l e - v a l u e - 0034140 b i n d \r ( c l : : e 0034160 x p a n s i o n - f n c l : : 0034200 d o c ) \r ( s i : : e 0034220 x p a n s i o n - f u n c t i o 0034240 n c l : : n a m e c l : : a 0034260 r g - l i s t c l : : b o d y 0034300 ) \r ` ( p r o g n ( 0034320 c l : s e t f ( g e t ' , c 0034340 l : : n a m e ' d e f i n e r 0034360 - f o r ) \r 0034400 ' , t y p e 0034420 ) \r ( 0034440 c l : p u s h n e w ' , c l : 0034460 : n a m e ( g e t ' , t y p 0034500 e ' d e f i n e d - b y ) ) \r 0034520 ( d e 0034540 f m a c r o ( 006 002 \ \ \ , 006 001 0034560 c l : : n a m e ) ( & w h o 0034600 l e c l : : o r i g i n a l - 0034620 m a c r o - c a l l & e n v i 0034640 r o n m e n t c l : : e n v ) 0034660 \r 0034700 ( l e t * ( ( c l : : m a c 0034720 r o - c a l l - w i t h o u t - 0034740 c o m m e n t s ( r e m o v e 0034760 - c o m m e n t s c l : : o r 0035000 i g i n a l - m a c r o - c a l 0035020 l ) ) \r 0035040 ( c l : : 0035060 d e f i n e d - o b j e c t - n 0035100 a m e ( , c l : : n a m e - f 0035120 n c l : : m a c r o - c a l l 0035140 - w i t h o u t - c o m m e n t 0035160 s ) ) ) \r 0035200 ` ( p r o 0035220 g n ( w i t h o u t - f i l e 0035240 p k g 006 003 006 001 006 003 ( * 0035260 | ; ; | " T h e , # ' , F O 0035300 O i s r e a l l y j u s t 0035320 l i k e , ' , F O O ( w h 0035340 i c h i s u s e d s i m p 0035360 l y t o g e t t h e e v 0035400 a l u a t i o n o f F O O 0035420 t o h a p p e n i n t h e 0035440 o u t e r b a c k - q u o t 0035460 e ' s c o n t e x t ) . I 0035500 n t h i s c a s e , h o w 0035520 e v e r , r a t h e r t h a 0035540 n s i m p l y p r e v e n t 0035560 i n g f u r t h e r e v a l 0035600 u a t i o n ( u s i n g Q U 0035620 O T E ) , w e w a n t t o 0035640 e n c o u r a g e t h e c 0035660 o m p i l e r t o c o m p i 0035700 l e t h e L A M D A - e x p 0035720 r e s s i o n t h a t i s 0035740 t h e v a l u e o f E X P 0035760 A N S I O N - F N . T h u s 0036000 , w e u s e # ' i n s t 0036020 e a d o f ' . " ) 006 001 \r 0036040 * 0036100 ( s i : : m a c r o - f u 0036120 n c a l l , # ' , c l : : e x 0036140 p a n s i o n - f n , \r 0036160 * 0036220 c l : : m a c 0036240 r o - c a l l - w i t h o u t - 0036260 c o m m e n t s , c l : : e n 0036300 v ) ) \r 0036320 0036340 ( c l : e v a l - w h e n 0036360 ( c l : e v a l ) \r 0036400 0036420 ( 0036440 c l : u n l e s s ( n u l l 0036460 f i l e p k g f l g ) \r 0036500 * 0036540 ( \ \ d e f i n 0036560 e - t y p e - s a v e - d e f n 0036600 \r 0036620 0036640 ' , 0036660 c l : : d e f i n e d - o b j e 0036700 c t - n a m e \r 0036720 * 0036760 ' , ' , t y p e \r 0037000 * 0037040 ' , c l : 0037060 : o r i g i n a l - m a c r o - 0037100 c a l l ) ) ) \r 0037120 0037140 ' , c l : : d e f i 0037160 n e d - o b j e c t - n a m e ) 0037200 ) ) \r \r 0037220 ( c l : p u s h n e w ' ( , 0037240 c l : : n a m e . p p r i n 0037260 t - d e f i n e r ) p r e t t 0037300 y p r i n t m a c r o s : t e 0037320 s t ' e q u a l ) \r 0037340 , @ ( a n d c 0037360 l : : u n d e f i n e r ` ( ( 0037400 c l : p u s h n e w ' , c l : 0037420 : u n d e f i n e r ( g e t 0037440 ' , c l : : n a m e ' u n d e 0037460 f i n e r s ) ) ) ) \r 0037500 , @ ( a n d c 0037520 l : : p r o t o t y p e - f n 0037540 ` ( ( x c l : : a d d - p r o t 0037560 o t y p e - f n ' , t y p e 0037600 ' , c l : : n a m e \r 0037620 * 0037660 ( f u n c t i 0037700 o n , c l : : p r o t o t y p 0037720 e - f n ) ) ) ) \r 0037740 , @ ( a n d c l : 0037760 : d o c ` ( ( c l : s e t f 0040000 ( c l : d o c u m e n t a t i o 0040020 n ' , c l : : n a m e ' c l 0040040 : f u n c t i o n ) \r 0040060 * 0040120 , c l : : d o c ) ) ) ) ) ) ) \r 0040140 \r ( c l : d e f u n 006 002 \ \ d 0040160 e l e t e - d e f i n e r 006 001 0040200 ( n a m e ) ( a n d ( c l : 0040220 s y m b o l p n a m e ) \r 0040240 * 0040300 ( l e t ( ( t y p e 0040320 ( g e t n a m e ' d e f i 0040340 n e r - f o r ) ) ) \r 0040360 * 0040420 ( / r e m p r o p 0040440 n a m e ' d e f i n e r - f 0040460 o r ) \r 0040500 * 0040540 ( c l : w h e n t y p e 006 003 0040560 006 001 \r 0040600 * 0040640 006 003 ( * | ; ; | 0040660 " n e e d t o r e m o v e 0040700 t h e p r o t o t y p e f u 0040720 n c t i o n ! " ) 006 001 \r 0040740 * 0041000 ( 0041020 / p u t p r o p t y p e ' d 0041040 e f i n e d - b y \r 0041060 * 0041140 ( r e m o v e n a m e 0041160 ( g e t t y p e ' d e f i 0041200 n e d - b y ) ) ) ) ) ) ) \r \r ( 0041220 d e f d e f i n e r ( 006 002 d e 0041240 f - d e f i n e - t y p e 006 001 0041260 ( : p r o t o t y p e ( l a m 0041300 b d a ( n a m e ) \r 0041320 * 0041360 ( a n d ( c l : s 0041400 y m b o l p n a m e ) \r 0041420 * 0041460 ` ( d 0041500 e f - d e f i n e - t y p e ( 0041520 006 002 \ \ \ , 006 001 n a m e ) " 0041540 D e s c r i p t i o n s t r i 0041560 n g " \r 0041600 * 0041640 ) \r ) ) ) ) d 0041660 e f i n e - t y p e s \r 0041700 ( n a m e d e s c r i p t i 0041720 o n & k e y u n d e f i n e 0041740 r & a u x ( c h a n g e l s 0041760 t ( c l : i n t e r n ( c l 0042000 : c o n c a t e n a t e ' s t 0042020 r i n g " C H A N G E D " \r 0042040 * 0042140 ( s t r i n g n 0042160 a m e ) \r 0042200 * 0042260 " L S 0042300 T " ) \r 0042320 * 0042400 ( c l : s y m b o l - p a c k 0042420 a g e n a m e ) ) ) ) \r 0042440 " D e f i n e N A M E a 0042460 s a n e w d e f i n i t i 0042500 o n t y p e " 006 003 006 001 0042520 006 003 ( * | ; ; | " T h 0042540 i s d e f i n i t i o n i s 0042560 a c l e a n i n t e r f a 0042600 c e t o a h o k e y i m 0042620 p l e m e n t a t i o n . I 0042640 t w o r k s e v e n b e f 0042660 o r e t h e f i l e p a c 0042700 k a g e i s l o a d e d . " 0042720 ) 006 001 \r ` ( p r o g n 0042740 ( c l : s e t f ( c l : d o 0042760 c u m e n t a t i o n ' , n a 0043000 m e ' d e f i n e - t y p e s 0043020 ) \r 0043040 ' , d e s c r i p t 0043060 i o n ) \r 0043100 ( c l : p u s h n e w ' ( 0043120 , n a m e x ( p 006 002 * 006 001 0043140 ( m a p c a r ' x ( f u n 0043160 c t i o n ( l a m b d a ( i 0043200 t e m ) \r 0043220 * 0043300 ( c l : d o \r 0043320 * 0043400 ( ( d e f 0043420 ( g e t d e f i t e m \r 0043440 * 0043540 ' , n a m 0043560 e ) ) ) \r 0043600 * 0043660 ( d e f d e f ) \r 0043700 * 0043760 ( 0044000 c l : c e r r o r " R e - f e 0044020 t c h t h e d e f i n i t i 0044040 o n " \r 0044060 * 0044140 " N o 0044160 ~ S d e f i n i t i o n f o 0044200 r ~ S " \r 0044220 * 0044300 ' , n 0044320 a m e i t e m ) ) ) ) ) ) ) 0044340 \r 0044360 p r e t t y d e f m a 0044400 c r o s : t e s t ' e q u a 0044420 l ) 006 003 006 001 006 003 ( * | ; ; | 0044440 " t h e i n f o r m a t i o 0044460 n a b o u t a t y p e i 0044500 n t h e f i l e p a c k a 0044520 g e i s s p l i t u p i 0044540 n t o a n u m b e r o f 0044560 d i f f e r e n t p l a c e s 0044600 . P R E T T Y T Y P E L S T 0044620 c o n t a i n s a r a n d o 0044640 m a m o u n t : t h e c h 0044660 a n g e l i s t i s t h e 0044700 v a r i a b l e w h o s e t 0044720 o p l e v e l v a l u e c 0044740 o n t a i n s t h e l i s t 0044760 o f c h a n g e d i t e m 0045000 s , a n d t h e d e s c r 0045020 i p t i o n i s a s t r i 0045040 n g u s e d b y f i l e s 0045060 ? T h i s i s d u p l i c 0045100 a t e d i n t h e C L : D 0045120 O C U M E N T A T I O N m e c 0045140 h a n i s m " ) 006 001 \r 0045160 ( c l : p u s h 0045200 n e w ' ( , c h a n g e l s t 0045220 , n a m e , d e s c r i p t 0045240 i o n ) p r e t t y t y p e l 0045260 s t : t e s t ' e q u a l ) 0045300 \r ( d 0045320 e f g l o b a l v a r ( 006 002 \ 0045340 \ \ , 006 001 c h a n g e l s t ) 0045360 n i l ) \r 006 003 006 001 0045400 * 0045440 006 003 ( * 0045460 | ; ; | " t h e d e f i n 0045500 i t i o n h a s h t a b l e 0045520 i s w h e r e t h e d e 0045540 f i n i t i o n s a r e r e 0045560 a l l y s t o r e d . C r e 0045600 a t e a n e n t r y f o r 0045620 t h i s t y p e . N o t e 0045640 t h a t d e f i n i t i o n 0045660 s a r e c o m p a r e d u 0045700 s i n g C L : E Q U A L s o 0045720 t h a t n a m e s c a n 0045740 b e s t r i n g s , l i s t 0045760 s , e t c . " ) 006 001 \r 0046000 ( c l : u n l 0046020 e s s ( c l : g e t h a s h 0046040 ' , n a m e * d e f i n i t i 0046060 o n - h a s h - t a b l e * ) \r 0046100 0046120 ( c l : s e t f ( c l 0046140 : g e t h a s h ' , n a m e 0046160 * d e f i n i t i o n - h a s h 0046200 - t a b l e * ) \r 0046220 0046240 ( c l : m a k e - h a s 0046260 h - t a b l e : t e s t ' c 0046300 l : e q u a l : s i z e 5 0 0046320 : r e h a s h - s i z e 5 0 0046340 ) ) ) \r 0046360 ( c l : p u s h n e w ' , n 0046400 a m e f i l e p k g t y p e s 0046420 ) \r ( 0046440 c l : s e t f ( g e t ' , n 0046460 a m e ' g e t d e f ) \r 0046500 0046520 ' \ \ d e f i n e - t y p e - 0046540 g e t d e f ) \r 0046560 ( c l : s e t f ( g 0046600 e t ' , n a m e ' d e l d e 0046620 f ) \r 0046640 ' \ \ d e f i n e 0046660 - t y p e - d e l d e f ) \r 0046700 ( c l : s 0046720 e t f ( g e t ' , n a m e 0046740 ' f i l e p k g c o n t e n t s 0046760 ) \r 0047000 ' n i l l ) \r 0047020 ( c l : p u 0047040 s h n e w ( c o n s ' , n a 0047060 m e n i l ) \r 0047100 x c l : 0047120 : * d e f i n i t i o n - p r o 0047140 t o t y p e s * : k e y ' c 0047160 a r ) \r 0047200 , @ ( c l : w h e n u n d e 0047220 f i n e r ` ( ( c l : p u s h 0047240 n e w ' , u n d e f i n e r 0047260 ( g e t ' , n a m e ' u n d 0047300 e f i n e r s ) ) ) ) ) ) \r \r ( 0047320 d e f m a c r o 006 002 w i t h o 0047340 u t - f i l e p k g 006 001 ( & b 0047360 o d y b o d y ) ` ( p r o g 0047400 n ( c l : e v a l - w h e n 0047420 ( c l : l o a d ) \r 0047440 * 0047520 , @ b o d y ) \r 0047540 * 0047600 ( c l : e v a l - 0047620 w h e n ( c l : e v a l ) \r 0047640 * 0047720 ( c l : u n l e s s 0047740 ( o r ( e q d f n f l g ' 0047760 p r o p ) \r 0050000 * 0050060 ( e q d 0050100 f n f l g ' a l l p r o p ) ) 0050120 \r 0050140 * 0050200 ( l 0050220 e t ( f i l e p k g f l g ( 0050240 d f n f l g t ) ) \r 0050260 * 0050340 , @ b 0050360 o d y ) ) ) ) ) \r \r \r \r \r 006 004 ( 0050400 * | ; ; | " T h e m o s t 0050420 c o m m o n l y - u s e d d 0050440 e f i n e r s " ) 006 001 \r \r ( d e 0050460 f d e f i n e r ( 006 002 c l : d 0050500 e f u n 006 001 ( : p r o t o t y 0050520 p e ( c l : l a m b d a ( c 0050540 l : : n a m e ) \r 0050560 * 0050620 ( a n d ( c l : s y m b o 0050640 l p c l : : n a m e ) \r 0050660 * 0050720 ` ( c l : 0050740 d e f u n ( 006 002 \ \ \ , 006 001 0050760 c l : : n a m e ) ( " A r g 0051000 L i s t " ) " B o d y " ) \r 0051020 ) ) ) ) f u n c t i o n s ( 0051040 c l : : n a m e c l : : a r g 0051060 s & b o d y ( c l : : b o d 0051100 y c l : : d e c l s c l : d 0051120 o c u m e n t a t i o n ) ) \r 0051140 ` ( p r o g 0051160 n ( c l : s e t f ( c l : s 0051200 y m b o l - f u n c t i o n ' 0051220 , c l : : n a m e ) \r 0051240 0051260 # ' ( c l : l a m b d 0051300 a , c l : : a r g s , @ c l 0051320 : : d e c l s ( c l : b l o c 0051340 k , c l : : n a m e , @ c l 0051360 : : b o d y ) ) ) \r 0051400 , @ ( 0051420 a n d c l : d o c u m e n t a 0051440 t i o n ` ( ( c l : s e t f 0051460 ( c l : d o c u m e n t a t i o 0051500 n ' , c l : : n a m e ' c l 0051520 : f u n c t i o n ) \r 0051540 * 0051600 , 0051620 c l : d o c u m e n t a t i o n 0051640 ) ) ) ) ) \r \r ( d e f d e f i n 0051660 e r ( 006 002 d e f i n l i n e 006 0051700 001 ( : p r o t o t y p e ( l 0051720 a m b d a ( n a m e ) \r 0051740 * 0052000 ( a n d ( c l : s y m b o 0052020 l p n a m e ) \r 0052040 * 0052100 ` ( d e f i n l i n e ( 0052120 006 002 \ \ \ , 006 001 n a m e ) ( 0052140 " A r g L i s t " ) " B o d 0052160 y " ) \r ) ) ) ) f u n c t i 0052200 o n s ( n a m e a r g l i s 0052220 t & b o d y b o d y & e n 0052240 v i r o n m e n t e n v ) 006 003 0052260 006 001 \r 0052300 * 0052340 006 003 ( * | ; ; ; | 0052360 " T h i s i s a n I N T E 0052400 R I M v e r s i o n o f D 0052420 E F I N L I N E . E v e n t 0052440 u a l l y , t h i s w i l l 0052460 j u s t t u r n i n t o 0052500 a D E F U N a n d a P R 0052520 O C L A I M I N L I N E . 0052540 ( I t s a y s s o r i g h 0052560 t h e r e . ) I f y o u 0052600 ' r e u s i n g t h i s o 0052620 n e , D O N O T m a k e 0052640 a n y r e c u r s i v e c a 0052660 l l s i n t h e b o d y 0052700 o f t h e D E F I N L I N E 0052720 . I f y o u d o , t h 0052740 e c o m p i l e r w i l l 0052760 r u n f o r e v e r t r y i 0053000 n g t o e x p a n d t h e 0053020 o p t i m i z e r . . . O 0053040 n c e t h e I N L I N E v 0053060 e r s i o n g e t s w o r k 0053100 i n g ( i n t h e P a v C 0053120 o m p i l e r o n l y ) t h 0053140 a t r e s t r i c t i o n w 0053160 i l l b e l i f t e d . " ) 0053200 006 001 \r ( c 0053220 l : m u l t i p l e - v a l u e 0053240 - b i n d ( c o d e d e c l 0053260 s d o c ) \r 0053300 ( p a r s e - 0053320 b o d y b o d y e n v t ) 0053340 \r 0053360 ( l e t ( ( n e w - l a 0053400 m b d a ` ( c l : l a m b d a 0053420 , a r g l i s t , @ d e c l 0053440 s ( c l : b l o c k , n a m 0053460 e , @ c o d e ) ) ) ) \r 0053500 0053520 ` ( p r o g n ( c l : 0053540 d e f u n ( 006 002 \ \ \ , 006 001 0053560 n a m e ) , a r g l i s t , 0053600 @ b o d y ) \r \r 0053620 0053640 ( d e f o p t i m 0053660 i z e r , n a m e , ( x c l 0053700 : p a c k ( l i s t " d e f 0053720 i n l i n e - " n a m e ) \r 0053740 * 0054020 ( c l : s y 0054040 m b o l - p a c k a g e n a m 0054060 e ) ) ( & r e s t a r g s ) 0054100 \r 0054120 0054140 ( c o n s ' , n 0054160 e w - l a m b d a a r g s ) ) 0054200 ) ) ) ) \r \r ( d e f d e f i n e 0054220 r ( 006 002 d e f m a c r o 006 001 0054240 ( : p r o t o t y p e ( c l : 0054260 l a m b d a ( c l : : n a m e 0054300 ) \r 0054320 0054340 ( a n d 0054360 ( c l : s y m b o l p c l : : 0054400 n a m e ) \r 0054420 * 0054460 ` ( d e f m a c r o ( 0054500 006 002 \ \ \ , 006 001 c l : : n a m 0054520 e ) ( c l : : a r g - l i s t 0054540 ) " B o d y " ) \r ) ) ) ) 0054560 f u n c t i o n s ( n a m e 0054600 d e f m a c r o - a r g s & b 0054620 o d y d e f m a c r o - b o d 0054640 y ) 006 003 006 001 \r 0054660 * 0054720 006 003 ( * | ; 0054740 ; | " T h e E V A L - W H E 0054760 N b e l o w s h o u l d b 0055000 e a P R O G N a s s o o 0055020 n a s t h e o l d B y t 0055040 e C o m p i l e r / C O M P I L 0055060 E - F I L E h a c k i s d 0055100 o n e a w a y w i t h . 0055120 T h e P a v C o m p i l e r 0055140 u n d e r s t a n d s D E F M 0055160 A C R O ' s c o r r e c t l y 0055200 a n d d o e s n ' t s i d 0055220 e - e f f e c t t h e e n v 0055240 i r o n m e n t . " ) 006 001 \r 0055260 ( c l : u n l 0055300 e s s ( a n d n a m e ( c 0055320 l : s y m b o l p n a m e ) ) 0055340 \r 0055360 ( c l : e r r o r " I l 0055400 l e g a l n a m e u s e d 0055420 i n D E F M A C R O : ~ S " 0055440 n a m e ) ) \r 0055460 ( l e t ( ( c m a c r o 0055500 n a m e ( x c l : p a c k ( 0055520 l i s t " e x p a n d - " n 0055540 a m e ) \r 0055560 0055600 ( c l : s y m 0055620 b o l - p a c k a g e n a m e 0055640 ) ) ) ) \r 0055660 ( c l : m u l t i p l 0055700 e - v a l u e - b i n d \r 0055720 ( e 0055740 x p a n s i o n - f n d o c - 0055760 s t r i n g ) \r 0056000 ( s i : : e x 0056020 p a n s i o n - f u n c t i o n 0056040 n a m e d e f m a c r o - a 0056060 r g s d e f m a c r o - b o d 0056100 y ) \r 0056120 ` ( c l : e v a l - w h 0056140 e n ( c l : e v a l c l : c 0056160 o m p i l e c l : l o a d ) \r 0056200 0056220 ( c l : s e t 0056240 f ( c l : s y m b o l - f u n 0056260 c t i o n ' , c m a c r o n a 0056300 m e ) \r 0056320 0056340 # ' , e x p a n s i o n 0056360 - f n ) \r 0056400 ( c 0056420 l : s e t f ( c l : m a c r o 0056440 - f u n c t i o n ' , n a m e 0056460 ) \r 0056500 0056520 ' , c m a c r o n a m e ) \r 0056540 0056560 , @ ( a n d 0056600 d o c - s t r i n g ` ( ( c l 0056620 : s e t f ( c l : d o c u m e 0056640 n t a t i o n ' , n a m e ' 0056660 c l : f u n c t i o n ) \r 0056700 * 0056760 , d o c - s t r i n g ) ) ) ) 0057000 ) ) ) \r \r ( d e f d e f i n e r 0057020 ( 006 002 c l : d e f v a r 006 001 0057040 ( : p r o t o t y p e ( c l : 0057060 l a m b d a ( c l : : n a m e 0057100 ) \r 0057120 0057140 ( a n d 0057160 ( c l : s y m b o l p c l : 0057200 : n a m e ) \r 0057220 * 0057260 ` ( c l : d e f v a 0057300 r ( 006 002 \ \ \ , 006 001 c l : : 0057320 n a m e ) ) \r ) ) ) ) v a r 0057340 i a b l e s ( c l : : n a m e 0057360 & o p t i o n a l ( c l : : 0057400 i n i t i a l - v a l u e n i 0057420 l c l : : i v p ) \r 0057440 0057460 c l : d o c u m e n t a t i o 0057500 n ) \r ` ( 0057520 p r o g n ( c l : p r o c l a 0057540 i m ' ( c l : s p e c i a l 0057560 , c l : : n a m e ) ) \r 0057600 , 0057620 @ ( a n d c l : : i v p ` ( 0057640 ( o r ( b o u n d p ' , c l 0057660 : : n a m e ) \r 0057700 * 0057740 ( s e t q , c l : : n a m e 0057760 , c l : : i n i t i a l - v a l 0060000 u e ) ) ) ) \r 0060020 , @ ( a n d 0060040 c l : d o c u m e n t a t i o 0060060 n ` ( ( c l : s e t f ( c l 0060100 : d o c u m e n t a t i o n ' 0060120 , c l : : n a m e ' c l : : v 0060140 a r i a b l e ) \r 0060160 * 0060220 , c l 0060240 : d o c u m e n t a t i o n ) ) 0060260 ) ) ) \r \r ( d e f d e f i n e r 0060300 ( 006 002 c l : d e f p a r a m e 0060320 t e r 006 001 ( : p r o t o t y p 0060340 e ( c l : l a m b d a ( c l 0060360 : : n a m e ) \r 0060400 * 0060440 ( a n d ( c l 0060460 : s y m b o l p c l : : n a m 0060500 e ) \r 0060520 * 0060560 ` ( c l : d e f 0060600 p a r a m e t e r ( 006 002 \ \ \ 0060620 , 006 001 c l : : n a m e ) " V 0060640 a l u e " \r 0060660 * 0060760 " D o c u m e n t a 0061000 t i o n s t r i n g " ) \r ) ) 0061020 ) ) v a r i a b l e s ( c l 0061040 : : n a m e c l : : i n i t i 0061060 a l - v a l u e & o p t i o n 0061100 a l c l : d o c u m e n t a t 0061120 i o n ) \r 0061140 ` ( p r o g n ( c l : p r o c 0061160 l a i m ' ( c l : s p e c i a 0061200 l , c l : : n a m e ) ) \r 0061220 0061240 ( s e t q , c l : : n a m e 0061260 , c l : : i n i t i a l - v a 0061300 l u e ) \r 0061320 , @ ( a n d c 0061340 l : d o c u m e n t a t i o n 0061360 ` ( ( c l : s e t f ( c l : d 0061400 o c u m e n t a t i o n ' , c 0061420 l : : n a m e ' c l : : v a r 0061440 i a b l e ) \r 0061460 * 0061520 , c l : d 0061540 o c u m e n t a t i o n ) ) ) ) 0061560 ) \r \r ( d e f d e f i n e r ( 0061600 006 002 c l : d e f c o n s t a n t 0061620 006 001 ( : p r o t o t y p e ( 0061640 c l : l a m b d a ( c l : : n 0061660 a m e ) \r 0061700 * 0061740 ( a n d ( c l : s y m 0061760 b o l p c l : : n a m e ) \r 0062000 * 0062060 ` ( c l : d e f c o n s t 0062100 a n t ( 006 002 \ \ \ , 006 001 c l 0062120 : : n a m e ) " V a l u e " 0062140 \r 0062160 * 0062260 " D o c u m e n t a t i o n s 0062300 t r i n g " ) \r ) ) ) ) v a r 0062320 i a b l e s ( c l : : n a m e 0062340 c l : : v a l u e & o p t i 0062360 o n a l c l : d o c u m e n t 0062400 a t i o n ) \r 0062420 ` ( p r o g n ( s e t q 0062440 , c l : : n a m e , c l : : v 0062460 a l u e ) \r 0062500 ( p u t h a s 0062520 h ' , c l : : n a m e ' ( c 0062540 o n s t a n t , c l : : n a m 0062560 e ) c o m p v a r m a c r o h 0062600 a s h ) \r 0062620 , @ ( a n d c 0062640 l : d o c u m e n t a t i o n 0062660 ` ( ( c l : s e t f ( c l : d 0062700 o c u m e n t a t i o n ' , c 0062720 l : : n a m e ' c l : : v a r 0062740 i a b l e ) \r 0062760 * 0063020 , c l : d 0063040 o c u m e n t a t i o n ) ) ) ) 0063060 ) \r \r ( d e f d e f i n e r ( 0063100 006 002 d e f g l o b a l v a r 006 001 0063120 ( : p r o t o t y p e ( c l 0063140 : l a m b d a ( c l : : n a m 0063160 e ) \r 0063200 * 0063240 ( a n d ( c l : s y m b o l p 0063260 c l : : n a m e ) \r 0063300 * 0063340 ` ( d 0063360 e f g l o b a l v a r ( 006 002 \ 0063400 \ \ , 006 001 c l : : n a m e ) 0063420 ) \r ) ) ) ) v a r i a b l e s 0063440 ( c l : : n a m e & o p t i 0063460 o n a l ( c l : : i n i t i a 0063500 l - v a l u e n i l c l : : 0063520 i v p ) \r 0063540 c l : d o 0063560 c u m e n t a t i o n ) \r 0063600 ` ( p r o g n 0063620 ( c l : p r o c l a i m ' ( g 0063640 l o b a l , c l : : n a m e ) 0063660 ) \r 0063700 , @ ( a n d c l : : 0063720 i v p ` ( ( o r ( b o u n d 0063740 p ' , c l : : n a m e ) \r 0063760 * 0064020 ( s e t q , c l : 0064040 : n a m e , c l : : i n i t i 0064060 a l - v a l u e ) ) ) ) \r 0064100 0064120 , @ ( a n d c l : d o c u m e 0064140 n t a t i o n ` ( ( c l : s e 0064160 t f ( c l : d o c u m e n t a 0064200 t i o n ' , c l : : n a m e 0064220 ' c l : : v a r i a b l e ) \r 0064240 * 0064320 , c l : d o c u m e n t a 0064340 t i o n ) ) ) ) ) \r \r ( d e f d 0064360 e f i n e r ( 006 002 d e f g l o 0064400 b a l p a r a m e t e r 006 001 ( 0064420 : p r o t o t y p e ( c l : l 0064440 a m b d a ( c l : : n a m e ) 0064460 \r 0064500 * 0064540 ( a n d ( c l : s y m 0064560 b o l p c l : : n a m e ) \r 0064600 * 0064660 ` ( d e f g l o b 0064700 a l p a r a m e t e r ( 006 002 \ 0064720 \ \ , 006 001 c l : : n a m e ) 0064740 " V a l u e " \r 0064760 * 0065040 " D o c u m e n t a t i 0065060 o n s t r i n g " ) \r ) ) ) ) 0065100 v a r i a b l e s ( c l : : 0065120 n a m e c l : : i n i t i a l 0065140 - v a l u e & o p t i o n a l 0065160 c l : d o c u m e n t a t i o 0065200 n ) \r ` ( 0065220 p r o g n ( c l : p r o c l a 0065240 i m ' ( g l o b a l , c l : 0065260 : n a m e ) ) \r 0065300 ( s e t q 0065320 , c l : : n a m e , c l : : 0065340 i n i t i a l - v a l u e ) \r 0065360 0065400 , @ ( a n d c l : d o c u 0065420 m e n t a t i o n ` ( ( c l : 0065440 s e t f ( c l : d o c u m e n 0065460 t a t i o n ' , c l : : n a m 0065500 e ' c l : : v a r i a b l e ) 0065520 \r 0065540 * 0065600 , c l : d o c u m e n 0065620 t a t i o n ) ) ) ) ) \r \r \r \r \r 0065640 006 004 ( * | ; ; | " D o n ' t 0065660 n o t e c h a n g e s t o 0065700 t h e s e p r o p e r t i e 0065720 s / v a r i a b l e s " ) 006 001 \r 0065740 \r \r ( p u t p r o p s 006 002 m a 0065760 c r o - f n p r o p t y p e 006 0066000 001 f u n c t i o n s ) \r \r ( p 0066020 u t p r o p s 006 002 u n d e f i 0066040 n e r s p r o p t y p e 006 001 0066060 i g n o r e ) \r \r ( p u t p r o 0066100 p s 006 002 d e f i n e r - f o r 0066120 p r o p t y p e 006 001 i g n o 0066140 r e ) \r \r ( p u t p r o p s 006 0066160 002 d e f i n e d - b y p r o p 0066200 t y p e 006 001 i g n o r e ) \r \r 0066220 \r \r 006 004 ( * | ; ; | " A r r 0066240 a n g e f o r t h e c o r 0066260 r e c t c o m p i l e r t o 0066300 b e u s e d . " ) 006 001 \r \r \r 0066320 ( p u t p r o p s 006 002 c m l d 0066340 e f f e r f i l e t y p e 006 001 0066360 c l : c o m p i l e - f i l e 0066400 ) \r ( p u t p r o p s c m l d 0066420 e f f e r c o p y r i g h t 0066440 ( " X e r o x C o r p o r a t 0066460 i o n " 1 9 8 6 1 9 0 0 ) ) 0066500 \r ( d e c l a r e \ : d o n t 0066520 c o p y \r ( f i l e m a p 0066540 ( n i l ) ) ) \r s t o p \r 0066555