$ od -c -N 50000 [eris]<LispCore>SOURCES>CL-ERROR!9 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 " 2 1 - O c t - 0000120 8 6 1 3 : 0 1 : 0 9 " 006 004 { 0000140 e r i s } < l i s p c o r e > s 0000160 o u r c e s > c l - e r r o r . 0000200 \ ; 9 006 001 3 5 3 6 6 \r \r 0000220 | c h a n g e s | | 0000240 t o : | ( f u n c t i o n s 0000260 d e f i n e - p r o c e e d - 0000300 f u n c t i o n ) \r \r 0000320 | p r e v i o u s | | d a t 0000340 e : | " 1 7 - O c t - 8 6 1 0000360 7 : 3 0 : 1 0 " { e r i s } < 0000400 l i s p c o r e > s o u r c e s 0000420 > c l - e r r o r . \ ; 8 ) \r \r 0000440 \r ; C o p y r i g h t ( c ) 0000460 1 9 8 6 b y X e r o x C 0000500 o r p o r a t i o n . A l l 0000520 r i g h t s r e s e r v e d 0000540 . \r \r ( p r e t t y c o m p r i 0000560 n t c l - e r r o r c o m s ) 0000600 \r \r ( r p a q q 006 002 c l - e r 0000620 r o r c o m s 006 001 \r 0000640 ( ( c o m s ( * | ; ; | 0000660 \r 0000700 " T e m p o r a r y b o o t 0000720 s t r a p p i n g s t u f f . 0000740 A n y t h i n g i n h e r 0000760 e g e t s c h a n g e d o 0001000 n c e C L s t a r t s w o 0001020 r k i n g . " \r 0001040 ) \r 0001060 ( f u n c t i 0001100 o n s c o n d i t i o n - t y 0001120 p e c a s e c o n d i t i o n 0001140 - b l o c k c o n d i t i o n 0001160 - r e t u r n ) ) \r 0001200 ( c o m s ( * | ; ; | 0001220 " I n t e r n a l s t u f f . 0001240 " ) \r 0001260 ( e x p o r t ( v a r i a b 0001300 l e s % c o n d i t i o n - t 0001320 y p e s - r e a l ) ) \r 0001340 ( f u n c t 0001360 i o n s d e f a u l t - p r o 0001400 c e e d - r e p o r t ) \r 0001420 ( f u n c 0001440 t i o n s w i t h - g e n s y 0001460 m s w i t h - e r r - l o o p 0001500 - v a r s s t r i p - k e y w 0001520 o r d s m a k e - f a k e - r 0001540 e p o r t - f u n c t i o n \r 0001560 0001600 m a k e - r e p o r t 0001620 - f u n c t i o n m a k e - e 0001640 n c a p s u l a t i o n n o r 0001660 m a l i z e - s l o t - d e s c 0001700 r i p t i o n s \r 0001720 e 0001740 x t r a c t - c o n d i t i o n 0001760 - b i n d i n g s n o r m a l 0002000 i z e - c o n d i t i o n - c l 0002020 a u s e s \r 0002040 m a s s 0002060 a g e - c a t c h - c o n d i t 0002100 i o n - c l a u s e s s p l i 0002120 t - p r o c e e d - c l a u s e 0002140 s p r o c e e d - c a s e - f 0002160 r o m - c l a u s e \r 0002200 0002220 p r o c e s s - p r o c e e d 0002240 - k e y w o r d s c h e c k - 0002260 * c a s e - s e l e c t o r c 0002300 o l l e c t - c a s e - s e l e 0002320 c t o r s \r 0002340 n o - p 0002360 r o c e e d - t e s t % p r e 0002400 f i x - s y m b o l % s u f f 0002420 i x - s y m b o l p r o c e e 0002440 d - a r g - c o l l e c t o r ) 0002460 ) \r ( c o m s 0002500 ( * | ; ; | \r 0002520 " U s e r - v i s i b l 0002540 e f o r m s . T h e s e s 0002560 h o u l d a l l b e e x t 0002600 e r n a l s y m b o l s . A 0002620 n y o t h e r s s h o u l d 0002640 b e i n t e r n a l . " \r 0002660 0002700 ) \r 0002720 ( f u n c t i o n s d e f i n 0002740 e - c o n d i t i o n c l : c 0002760 h e c k - t y p e c l : e t y 0003000 p e c a s e c t y p e c a s e 0003020 c l : e c a s e c l : c c a 0003040 s e \r 0003060 c l : a s s e 0003100 r t h a n d l e r - b i n d 0003120 c o n d i t i o n - b i n d c 0003140 o n d i t i o n - c a s e r e 0003160 a l - c o n d i t i o n - c a s 0003200 e \r 0003220 i g n o r e - e 0003240 r r o r s p r o c e e d - c a 0003260 s e r e a l - p r o c e e d - 0003300 c a s e d e f i n e - p r o c 0003320 e e d - f u n c t i o n c a t 0003340 c h - a b o r t \r 0003360 ) ) 0003400 \r ( p r o p f 0003420 i l e t y p e c l - e r r o r 0003440 ) \r ( d e c l a 0003460 r e \ : d o n t e v a l @ l o 0003500 a d d o e v a l @ c o m p i l 0003520 e d o n t c o p y c o m p i 0003540 l e r v a r s ( a d d v a r s 0003560 ( n l a m a ) \r 0003600 * 0003700 ( n l a m l ) \r 0003720 * 0004020 ( l a m a 0004040 ) ) ) ) ) \r \r \r \r 006 004 ( * | ; 0004060 ; | " T e m p o r a r y b o 0004100 o t s t r a p p i n g s t u f 0004120 f . A n y t h i n g i n h 0004140 e r e g e t s c h a n g e d 0004160 o n c e C L s t a r t s 0004200 w o r k i n g . " ) 006 001 \r \r ( d 0004220 e f m a c r o 006 002 c o n d i t 0004240 i o n - t y p e c a s e 006 001 ( 0004260 o b j e c t & r e s t c l a 0004300 u s e s ) \r ( l e t \r 0004320 ( ( v a l ( c l : g e n s 0004340 y m ) ) ) \r ( c l : i f 0004360 % c o n d i t i o n - t y p e 0004400 s - r e a l ` ( c l : t y p e 0004420 c a s e , o b j e c t , @ c 0004440 l a u s e s ) \r 0004460 ` ( l e t ( ( , v a l 0004500 , o b j e c t ) ) \r 0004520 ( c o n d 0004540 \r 0004560 , @ ( c l : m a p c a 0004600 r ( f u n c t i o n ( c l : 0004620 l a m b d a \r 0004640 * 0004700 ( c l a u s e ) \r 0004720 * 0004760 ( d e s t r u c 0005000 t u r i n g - b i n d \r 0005020 * 0005060 ( s e l e c t 0005100 o r . b o d y ) \r 0005120 * 0005160 c l a u s e \r 0005200 * 0005240 ( c l : 0005260 i f ( e q s e l e c t o r 0005300 t ) \r 0005320 * 0005360 c l a u s e \r 0005400 * 0005460 ` ( ( c o n d i t i o n - t 0005500 y p e p , v a l ' , s e l e 0005520 c t o r ) \r 0005540 * 0005600 , @ b o 0005620 d y ) ) ) ) ) \r 0005640 0005660 c l a u s e s ) ) ) ) 0005700 ) ) \r \r ( d e f m a c r o 006 002 0005720 c o n d i t i o n - b l o c k 006 0005740 001 ( t a g & b o d y f o r 0005760 m s ) ` ( c l : c a t c h ' 0006000 , t a g , @ f o r m s ) ) \r \r 0006020 ( d e f m a c r o 006 002 c o n d 0006040 i t i o n - r e t u r n 006 001 ( 0006060 t a g & o p t i o n a l r e 0006100 s u l t ) ` ( c l : t h r o w 0006120 ' , t a g , r e s u l t ) ) 0006140 \r \r \r \r \r 006 004 ( * | ; ; | " 0006160 I n t e r n a l s t u f f . " 0006200 ) 006 001 \r \r ( * F O L L O W I N 0006220 G D E F I N I T I O N S E X 0006240 P O R T E D ) \r \r \r ( c l : d e 0006260 f c o n s t a n t 006 002 % c o n 0006300 d i t i o n - t y p e s - r e a 0006320 l 006 001 n i l ) \r \r \r \r ( * E 0006340 N D E X P O R T E D D E F I 0006360 N I T I O N S ) \r \r ( d e f m a 0006400 c r o 006 002 d e f a u l t - p r 0006420 o c e e d - r e p o r t 006 001 ( 0006440 p r o c e e d - t y p e ) ` ( 0006460 g e t , p r o c e e d - t y p 0006500 e ' % d e f a u l t - p r o c 0006520 e e d - r e p o r t \r 0006540 * 0006620 ' d e f a u l t - p r o c e e 0006640 d - r e p o r t e r ) ) \r \r ( d 0006660 e f m a c r o 006 002 w i t h - g 0006700 e n s y m s 006 001 ( v a r s p 0006720 r e f i x & b o d y b o d y 0006740 ) \r ` ( l e t , ( m a p 0006760 c a r v a r s ( f u n c t i 0007000 o n ( c l : l a m b d a ( v 0007020 a r ) \r 0007040 0007060 ` ( , v 0007100 a r ( g e n s y m , p r e f 0007120 i x ) ) ) ) ) , @ b o d y ) ) 0007140 \r \r ( d e f m a c r o 006 002 w i 0007160 t h - e r r - l o o p - v a r s 0007200 006 001 ( p r e f i x & b o d y 0007220 b o d y ) ` ( w i t h - g e 0007240 n s y m s ( v a l b l o c k 0007260 - n a m e a g a i n ) \r 0007300 * 0007360 , p r e f i x \r 0007400 * 0007460 , @ b o d y ) ) \r 0007500 \r ( c l : d e f u n 006 002 s t r 0007520 i p - k e y w o r d s 006 001 ( a 0007540 r g s ) ( c l : v a l u e s 0007560 ( 006 002 f o r 006 001 006 002 o l d 006 001 0007600 a r g s 006 002 o n 006 001 a r g 0007620 s 006 002 b y 006 001 c d d r \r 0007640 * 0007700 006 002 w h 0007720 i l e 006 001 ( c l : k e y w o r 0007740 d p ( c l : f i r s t a r g 0007760 s ) ) \r 0010000 * 0010040 006 002 c o l l e c t 006 001 ( l 0010060 i s t ( c l : f i r s t a r 0010100 g s ) \r 0010120 * 0010200 ( c l : s e c o n d a r g s ) 0010220 ) ) \r 0010240 0010260 a r g s ) ) 0010300 \r \r ( c l : d e f u n 006 002 m a 0010320 k e - f a k e - r e p o r t - f 0010340 u n c t i o n 006 001 ( d a t u m 0010360 b o u n d - v a r & o p t i 0010400 o n a l e n c a p s u l a t i 0010420 o n ) \r ( c l : e t y p e 0010440 c a s e d a t u m ( s t r i 0010460 n g ` ( l a m b d a ( d a t 0010500 u m s t r e a m ) \r 0010520 0010540 ( 006 002 0010560 d e c l a r e 006 001 ( i g n o r 0010600 e d a t u m ) ) \r 0010620 0010640 ( c l : 0010660 w r i t e - s t r i n g , d a 0010700 t u m s t r e a m ) ) ) \r 0010720 ( l i s t ` ( 0010740 l a m b d a ( , b o u n d - v 0010760 a r * s t a n d a r d - o u t 0011000 p u t * ) \r 0011020 , ( c l : i f 0011040 ( n u l l e n c a p s u l a 0011060 t i o n ) \r 0011100 0011120 d a t u m \r 0011140 0011160 ` ( l e t , e n c a p s u 0011200 l a t i o n , d a t u m ) ) ) 0011220 ) ) ) \r \r ( c l : d e f u n 006 0011240 002 m a k e - r e p o r t - f u n 0011260 c t i o n 006 001 ( d a t u m b 0011300 o u n d - v a r & o p t i o n 0011320 a l t y p e - n a m e ) \r 0011340 ( c l : e t y p e c a s e d 0011360 a t u m ( s t r i n g ` ( l 0011400 a m b d a ( d a t u m s t r 0011420 e a m ) \r 0011440 0011460 ( 006 002 d e c l a r 0011500 e 006 001 ( i g n o r e d a t u 0011520 m ) ) \r 0011540 0011560 ( c l : w r i t e - 0011600 s t r i n g , d a t u m s t 0011620 r e a m ) ) ) \r 0011640 ( l i s t ` ( l a m b d a 0011660 ( , b o u n d - v a r * s t 0011700 a n d a r d - o u t p u t * ) \r 0011720 0011740 , ( c l : i f t y p e - 0011760 n a m e ` ( 006 002 w i t h 006 001 0012000 , t y p e - n a m e , b o u n 0012020 d - v a r , d a t u m ) d a 0012040 t u m ) ) ) ) ) \r \r ( c l : d e 0012060 f u n 006 002 m a k e - e n c a p 0012100 s u l a t i o n 006 001 ( c o n d 0012120 i t i o n - t y p e s l o t - 0012140 n a m e s ) \r ( m a p c a 0012160 r ( c l : r e m o v e ' - - 0012200 d u m m y - s l o t - - s l o 0012220 t - n a m e s ) \r 0012240 ( f u n c t i o n ( l a 0012260 m b d a ( s l o t ) \r 0012300 0012320 ` ( , s l o t ( , ( % s u 0012340 f f i x - s y m b o l c o n d 0012360 i t i o n - t y p e ( c l : c 0012400 o n c a t e n a t e ' s t r i 0012420 n g " - " \r 0012440 * 0012520 ( c l 0012540 : s y m b o l - n a m e s l o 0012560 t ) ) ) \r 0012600 0012620 c o n d i 0012640 t i o n ) ) ) ) ) ) \r \r ( c l : 0012660 d e f u n 006 002 n o r m a l i z 0012700 e - s l o t - d e s c r i p t i 0012720 o n s 006 001 ( s l o t s ) \r 0012740 ( m a p c a r s l o t s ( 0012760 f u n c t i o n ( c l : l a m 0013000 b d a ( s l o t ) \r 0013020 0013040 ( 006 002 0013060 | i f | 006 001 ( l i s t p s l 0013100 o t ) \r 0013120 0013140 006 002 | t h e 0013160 n | 006 001 ( 006 002 | i f | 006 001 ( 0013200 e q u a l ( l e n g t h s l 0013220 o t ) \r 0013240 * 0013300 1 ) 0013320 \r 0013340 * 0013400 006 002 | t h e n | 006 001 ( a p 0013420 p e n d s l o t ' ( n i l 0013440 : r e a d o n l y t ) ) \r 0013460 * 0013520 006 002 | 0013540 e l s e | 006 001 ` ( , ( c a r 0013560 s l o t ) , ( c a d r s l o 0013600 t ) : r e a d - o n l y t \r 0013620 * 0013700 , @ 0013720 ( c d d r s l o t ) ) ) \r 0013740 * 0014000 006 002 | e l s e | 006 001 ` ( , 0014020 s l o t n i l : r e a d - o 0014040 n l y t ) ) ) ) ) ) \r \r ( c l 0014060 : d e f u n 006 002 e x t r a c t 0014100 - c o n d i t i o n - b i n d i 0014120 n g s 006 001 ( c l a u s e s ) \r 0014140 ( m a p c a r c l a u s 0014160 e s ( f u n c t i o n ( c l 0014200 : l a m b d a ( c l a u s e ) 0014220 \r 0014240 0014260 ` ( c o n s ' , ( c 0014300 l : f i r s t c l a u s e ) 0014320 , ( c l : s e c o n d c l a u 0014340 s e ) ) ) ) ) ) \r \r ( c l : d e 0014360 f u n 006 002 n o r m a l i z e - 0014400 c o n d i t i o n - c l a u s e 0014420 s 006 001 ( c l a u s e s ) \r 0014440 ( m a p c o n c c l a u s e 0014460 s ( f u n c t i o n ( c l : 0014500 l a m b d a \r 0014520 0014540 ( c l a u s e ) \r 0014560 0014600 ( l 0014620 e t ( ( c o n d i t i o n s 0014640 ( c l : f i r s t c l a u s e 0014660 ) ) ) \r 0014700 0014720 ( c l : t y p e 0014740 c a s e \r 0014760 0015000 c o n d i t 0015020 i o n s \r 0015040 0015060 ( l i s t 0015100 ( c l : i f ( e q ( c l : f 0015120 i r s t c o n d i t i o n s ) 0015140 \r 0015160 * 0015220 ' q u o t e ) \r 0015240 * 0015320 ( c l : e r r o r \r 0015340 * 0015420 " B a d c o n d i t 0015440 i o n s p e c ~ s . S h o 0015460 u l d b e u n q u o t e d . 0015500 " \r 0015520 * 0015560 c o n d 0015600 i t i o n s ) \r 0015620 * 0015660 ( m a p c a 0015700 r c o n d i t i o n s \r 0015720 * 0016000 ( f u n c t i o n 0016020 ( c l : l a m b d a \r 0016040 * 0016120 ( 0016140 c ) \r 0016160 * 0016240 ( c l : i f ( c 0016260 l : s y m b o l p c ) \r 0016300 * 0016400 ( c o n s c 0016420 ( c d r c l a u s e ) ) \r 0016440 * 0016540 ( c l : e r r 0016560 o r \r 0016600 0016620 " B a 0016640 d c o n d i t i o n s p e c 0016660 ~ s . S h o u l d b e l 0016700 i s t o f u n q u o t e d 0016720 s y m b o l s . " \r 0016740 * 0017040 c o n 0017060 d i t i o n s ) ) ) ) ) ) ) \r 0017100 * 0017140 ( c l : s y m b o l ( 0017160 l i s t c l a u s e ) ) \r 0017200 * 0017240 ( t ( c l : e r r o r 0017260 \r 0017300 0017320 " B a d c o 0017340 n d i t i o n s p e c ~ s . 0017360 S h o u l d b e s y m b o 0017400 l o r l i s t o f s y m 0017420 b o l s . " \r 0017440 * 0017500 c o n d i t i o n 0017520 s ) ) ) ) ) ) ) ) \r \r ( c l : d 0017540 e f u n 006 002 m a s s a g e - c 0017560 a t c h - c o n d i t i o n - c 0017600 l a u s e s 006 001 ( c l a u s e 0017620 s i n i t - v a l u e ) \r 0017640 ( m a p c a r c l a u s e s 0017660 ( f u n c t i o n ( c l : l 0017700 a m b d a \r 0017720 0017740 ( c l a u s e ) \r 0017760 0020000 ( d e s t 0020020 r u c t u r i n g - b i n d \r 0020040 0020060 ( s 0020100 e l e c t o r b v l . f o 0020120 r m s ) \r 0020140 0020160 c l a u s e \r 0020200 0020220 ( c l : i f 0020240 ( n u l l b v l ) \r 0020260 * 0020320 ( c o n s s e l e c t o r 0020340 f o r m s ) \r 0020360 0020400 ( l 0020420 i s t s e l e c t o r ` ( l 0020440 e t ( , ( l i s t ( c a r 0020460 b v l ) \r 0020500 * 0020560 i n i t - v a l 0020600 u e ) , @ ( c d r b v l ) ) 0020620 \r 0020640 * 0020700 , @ f o 0020720 r m s ) ) ) ) ) ) ) ) \r \r ( c l 0020740 : d e f u n 006 002 s p l i t - p 0020760 r o c e e d - c l a u s e s 006 001 0021000 ( c l a u s e s t a g ) \r 0021020 ( l e t \r ( c a s e 0021040 s b o d i e s ) \r ( 006 0021060 002 | f o r | 006 001 c l a u s e 0021100 006 002 | i n | 006 001 c l a u s e s 0021120 006 002 | a s | 006 001 s e l e c t 0021140 o r 006 002 | f r o m | 006 001 0 \r 0021160 006 002 | d o | 006 001 0021200 ( d e s t r u c t u r i n g - b 0021220 i n d \r 0021240 ( n a m e v a r s ) \r 0021260 c l a u s e 0021300 \r ( c 0021320 l : m u l t i p l e - v a l u e 0021340 - b i n d \r 0021360 ( t e s t r e p o r t 0021400 t a i l ) \r 0021420 ( p r o c e s s - p r 0021440 o c e e d - k e y w o r d s n 0021460 a m e ( c d d r c l a u s e 0021500 ) ) \r 0021520 ( 006 002 | i f | 006 001 ( n u l l 0021540 n a m e ) \r 0021560 006 002 | t h e n 0021600 | 006 001 ( c l : u n l e s s t 0021620 e s t ( c l : s e t f t e s 0021640 t ' t r u e ) ) \r 0021660 0021700 ( c l : u n l e s s r e p 0021720 o r t ( c l : e r r o r \r 0021740 * 0022000 " 0022020 U n n a m e d p r o c e e d 0022040 c a s e s m u s t h a v e 0022060 a r e p o r t m e t h o d : 0022100 ~ S " \r 0022120 * 0022160 c l a u s e ) ) \r 0022200 0022220 006 002 | e l s e | 006 001 ( c l : u 0022240 n l e s s t e s t ( 006 002 | i 0022260 f | 006 001 ( n o t ( g e t n 0022300 a m e ' % d e f a u l t - p r 0022320 o c e e d - t e s t ) ) \r 0022340 * 0022400 006 002 | t h e n | 0022420 006 001 ( c l : w a r n \r 0022440 * 0022500 " N o t e s t 0022520 s p e c i f i e d f o r p 0022540 r o c e e d t y p e ~ A : 0022560 m a y b e u n d e f i n e d 0022600 . " \r 0022620 * 0022660 n a m 0022700 e ) ) ) \r 0022720 ( c l : u 0022740 n l e s s r e p o r t ( c l 0022760 : s e t f r e p o r t \r 0023000 * 0023040 ` ( c l 0023060 : l a m b d a ( p c s t r e 0023100 a m ) \r 0023120 * 0023160 ( c l : f 0023200 u n c a l l ( d e f a u l t - 0023220 p r o c e e d - r e p o r t \r 0023240 * 0023340 ' , n a m e ) \r 0023360 * 0023440 p c s t r e 0023460 a m ) ) ) ) ) \r 0023500 ( c l : p u s h ` 0023520 ( m a k e - p r o c e e d - c a 0023540 s e : n a m e ' , n a m e 0023560 : t a g , t a g : s e l e c 0023600 t o r , s e l e c t o r : t 0023620 e s t \r 0023640 0023660 , ( a n d t e s t ` ( 0023700 f u n c t i o n , t e s t ) ) 0023720 : r e p o r t ( f u n c t i 0023740 o n , r e p o r t ) ) c a s 0023760 e s ) \r 0024000 ( c l : p u s h ` ( , s e 0024020 l e c t o r ( f u n c t i o n 0024040 ( c l : l a m b d a , v a r 0024060 s , @ t a i l ) ) ) b o d i 0024100 e s ) ) ) ) \r ( c l : v 0024120 a l u e s ( r e v e r s e c 0024140 a s e s ) \r 0024160 ( r e v e r s e b o d i e s 0024200 ) ) ) ) \r \r ( c l : d e f u n 0024220 006 002 p r o c e e d - c a s e - f 0024240 r o m - c l a u s e 006 001 ( c l 0024260 a u s e t a g d u m m y ) \r 0024300 ( d e s t r u c t u r i n 0024320 g - b i n d \r ( n a m e 0024340 v a r s . t a i l ) \r 0024360 c l a u s e \r ( c l 0024400 : m u l t i p l e - v a l u e - 0024420 b i n d \r ( t e s t 0024440 r e p o r t b o d y ) \r 0024460 ( p r o c e s s - p r o c e 0024500 e d - k e y w o r d s n a m e 0024520 t a i l ) \r ( 006 002 | 0024540 i f | 006 001 ( n u l l n a m e 0024560 ) \r 006 002 | t h 0024600 e n | 006 001 ( c l : u n l e s s 0024620 t e s t ( c l : s e t f t 0024640 e s t ' t r u e ) ) \r 0024660 ( c l : u 0024700 n l e s s r e p o r t ( c l 0024720 : e r r o r " U n n a m e d 0024740 p r o c e e d c a s e s m u 0024760 s t h a v e a r e p o r t 0025000 m e t h o d : ~ S " \r 0025020 * 0025060 c l a u s e ) ) \r 0025100 006 002 | e l s e | 006 001 0025120 ( c l : u n l e s s t e s t 0025140 ( 006 002 | i f | 006 001 ( n o t 0025160 ( g e t n a m e ' % d e f a 0025200 u l t - p r o c e e d - t e s t 0025220 ) ) \r 0025240 0025260 006 002 | t h e n | 006 001 0025300 ( c l : w a r n \r 0025320 * 0025360 " N o t e s t s p 0025400 e c i f i e d f o r p r o c 0025420 e e d t y p e ~ A : m a y 0025440 b e u n d e f i n e d . " 0025460 \r 0025500 * 0025540 n a m e ) ) ) \r 0025560 ( c l : u n l e s s 0025600 r e p o r t ( c l : s e t f 0025620 r e p o r t ` ( c l : l a m 0025640 b d a ( p c s t r e a m ) \r 0025660 * 0025740 ( c l : f u n c a 0025760 l l ( d e f a u l t - p r o c 0026000 e e d - r e p o r t \r 0026020 * 0026100 ' 0026120 , n a m e ) \r 0026140 * 0026220 p c s t r e a m ) ) 0026240 ) ) ) \r ` ( m a k e - 0026260 r e a l - p r o c e e d - c a s 0026300 e : n a m e ' , n a m e : 0026320 t a g , t a g : c o n t i n 0026340 u a t i o n \r 0026360 ( f u n c t i o n ( c 0026400 l : l a m b d a ( & o p t i o 0026420 n a l , @ ( o r v a r s ( 0026440 l i s t d u m m y ) ) ) \r 0026460 0026500 , @ b o 0026520 d y ) ) \r 0026540 : t e s t \r 0026560 , ( a n d t e s t 0026600 ` ( f u n c t i o n , t e s t 0026620 ) ) : r e p o r t ( f u n c 0026640 t i o n , r e p o r t ) ) ) ) 0026660 ) \r \r ( c l : d e f u n 006 002 p 0026700 r o c e s s - p r o c e e d - k 0026720 e y w o r d s 006 001 ( n a m e 0026740 a r g ) \r ( l e t ( t e 0026760 s t r e p o r t ) \r 0027000 ( c l : m u l t i p l e - 0027020 v a l u e - b i n d \r 0027040 ( k e y s t a i l ) \r 0027060 ( s t r i p - 0027100 k e y w o r d s a r g ) \r 0027120 ( 006 002 | f o r | 006 0027140 001 p a i r 006 002 | i n | 006 001 0027160 k e y s \r 0027200 006 002 | d o | 006 001 ( d e s t r 0027220 u c t u r i n g - b i n d ( k 0027240 e y v a l u e ) \r 0027260 0027300 p a i r \r 0027320 ( 0027340 c a s e k e y ( : t e s t 0027360 ( c l : i f t e s t ( c l : 0027400 e r r o r \r 0027420 * 0027460 " D u p l i c a 0027500 t e t e s t f o r m s p e 0027520 c i f i e d f o r p r o c e 0027540 e d t y p e ~ S . " \r 0027560 * 0027640 n a m e ) ) 0027660 \r 0027700 0027720 ( c l : s e 0027740 t f t e s t v a l u e ) ) \r 0027760 0030000 ( : 0030020 c o n d i t i o n ( c l : i f 0030040 t e s t ( c l : e r r o r 0030060 \r 0030100 * 0030140 " D u p l i c a t e t e s 0030160 t f o r m s p e c i f i e d 0030200 f o r p r o c e e d t y p 0030220 e ~ S . " \r 0030240 * 0030320 n a m e ) ) \r 0030340 * 0030400 ( c l : s e t f t e s t ` 0030420 ( c l : l a m b d a ( c ) \r 0030440 * 0030520 ( c o n d i 0030540 t i o n - t y p e p c ' , v 0030560 a l u e ) ) ) ) \r 0030600 0030620 ( : r e p o r t - 0030640 f u n c t i o n ( c l : i f 0030660 r e p o r t ( c l : e r r o r 0030700 \r 0030720 * 0030760 " D u p l i c a t e r e p o 0031000 r t f o r m s p e c i f i e 0031020 d f o r p r o c e e d t y 0031040 p e ~ S . " \r 0031060 * 0031140 n a 0031160 m e ) ) \r 0031200 0031220 ( c l : s e 0031240 t f r e p o r t v a l u e ) 0031260 ) \r 0031300 0031320 ( : r e p o r t ( c l : i f 0031340 r e p o r t ( c l : e r r o r 0031360 \r 0031400 * 0031440 " D u p l i c a t e r e p o 0031460 r t f o r m s p e c i f i e 0031500 d f o r p r o c e e d t y 0031520 p e ~ S . " \r 0031540 * 0031620 n a m e ) ) \r 0031640 * 0031700 ( c l : s e t f r e p o r t 0031720 ( m a k e - r e p o r t - f u 0031740 n c t i o n v a l u e ' p r 0031760 o c e e d - c a s e ) ) ) \r 0032000 0032020 ( o t h 0032040 e r w i s e ( c l : c e r r o 0032060 r " I g n o r e k e y / v a 0032100 l u e p a i r " \r 0032120 * 0032160 " I l l e 0032200 g a l k e y w o r d ~ S i 0032220 n p r o c e e d c a s e ~ 0032240 S . " k e y n a m e ) ) ) ) 0032260 \r 0032300 ) \r ( c l : 0032320 v a l u e s t e s t r e p o 0032340 r t t a i l ) ) ) ) \r \r ( c l 0032360 : d e f u n 006 002 c h e c k - * 0032400 c a s e - s e l e c t o r 006 001 0032420 ( s e l e c t o r n a m e ) 0032440 ( c l : i f ( o r ( e q s 0032460 e l e c t o r ' t ) \r 0032500 * 0032560 ( e q s e l e c t 0032600 o r ' o t h e r w i s e ) ) \r 0032620 * 0032700 ( c l : e r r o r 0032720 " ~ A n o t a l l o w e d 0032740 i n t h e ~ A f o r m . " 0032760 \r 0033000 * 0033040 s 0033060 e l e c t o r n a m e ) \r 0033100 * 0033160 s e l e c t o r ) ) \r \r 0033200 ( c l : d e f u n 006 002 c o l l 0033220 e c t - c a s e - s e l e c t o 0033240 r s 006 001 ( c l a u s e s n a 0033260 m e ) \r ( m a p c o n c 0033300 c l a u s e s ( f u n c t i o 0033320 n ( c l : l a m b d a ( c l 0033340 a u s e ) \r 0033360 0033400 ( 006 002 | i 0033420 f | 006 001 ( a n d ( c l : c o 0033440 n s p ( c a r c l a u s e ) 0033460 ) \r 0033500 * 0033540 ( f m e m b n a m e ' ( 0033560 c l : e c a s e c l : c c a s 0033600 e ) ) ) \r 0033620 0033640 006 002 0033660 | t h e n | 006 001 ( c l : c o p 0033700 y - l i s t ( c a r c l a u 0033720 s e ) ) \r 0033740 0033760 006 002 | e 0034000 l s e | 006 001 ( l i s t ( c h 0034020 e c k - * c a s e - s e l e c t 0034040 o r ( c a r c l a u s e ) \r 0034060 * 0034140 n a m e ) 0034160 ) ) ) ) ) ) \r \r ( c l : d e f u 0034200 n 006 002 n o - p r o c e e d - t 0034220 e s t 006 001 ( n a m e & a u x 0034240 o n c e ) \r ( p r o c e 0034260 e d - c a s e ( h a n d l e r 0034300 - b i n d ( ( n o - p r o c e 0034320 e d - t e s t ( f u n c t i o 0034340 n ( c l : l a m b d a \r 0034360 * 0034440 ( c ) \r 0034460 * 0034540 ( c l : w h e 0034560 n ( e q ( n o - p r o c e e 0034600 d - t e s t - n a m e c ) \r 0034620 * 0034720 n a m e ) \r 0034740 * 0035040 ( c l : i f o n c e ( c l 0035060 : t h r o w ' \r 0035100 * 0035200 s k i 0035220 p - p r o c e e d - c a s e \r 0035240 * 0035360 n i l ) \r 0035400 * 0035500 ( c l : s e t f o n 0035520 c e t ) ) ) ) ) ) ) \r 0035540 0035560 ( c l : e r r o r ' n 0035600 o - p r o c e e d - t e s t : 0035620 n a m e n a m e ) ) \r 0035640 ( n i l n i l : 0035660 r e p o r t " U s e F A L S 0035700 E f o r t h e t e s t " 0035720 : c o n d i t i o n n o - p r 0035740 o c e e d - t e s t ( f u n c 0035760 t i o n f a l s e ) ) \r 0036000 ( p r o c e e d 0036020 n i l : r e p o r t " M a k 0036040 e T R U E t h e d e f a u 0036060 l t t e s t " : c o n d i t 0036100 i o n n o - p r o c e e d - t 0036120 e s t \r 0036140 ( c l : s e t f ( d 0036160 e f a u l t - p r o c e e d - t 0036200 e s t n a m e ) \r 0036220 0036240 ( f u n c t i o n t r u e 0036260 ) ) ) ) ) \r \r ( c l : d e f u n 0036300 006 002 % p r e f i x - s y m b o 0036320 l 006 001 ( p r e f i x c l : s 0036340 y m b o l ) ( c l : i n t e r 0036360 n ( c l : c o n c a t e n a t 0036400 e ' s t r i n g p r e f i x 0036420 ( c l : s y m b o l - n a m e 0036440 \r 0036460 * 0036560 c l : s y m b o 0036600 l ) ) \r 0036620 * 0036660 ( c l : s y m b o 0036700 l - p a c k a g e c l : s y m 0036720 b o l ) ) ) \r \r ( c l : d e f u 0036740 n 006 002 % s u f f i x - s y m b 0036760 o l 006 001 ( c l : s y m b o l 0037000 s u f f i x ) ( c l : i n t e 0037020 r n ( c l : c o n c a t e n a 0037040 t e ' s t r i n g ( c l : s 0037060 y m b o l - n a m e \r 0037100 * 0037220 c l : s y m b o l ) \r 0037240 * 0037320 s u f f i 0037340 x ) \r 0037360 * 0037420 ( c l : s y m b o l 0037440 - p a c k a g e c l : s y m b 0037460 o l ) ) ) \r \r ( d e f m a c r o 0037500 006 002 p r o c e e d - a r g - c 0037520 o l l e c t o r 006 001 ( n a m e 0037540 ) " F u n c t i o n t h a t 0037560 c o l l e c t s u s e r - s 0037600 p e c i f i e d o p t i o n a 0037620 l a r g s ( e x c l u d i n 0037640 g t h e c o n d i t i o n ) 0037660 f o r a n a m e d p r o 0037700 c e e d c a s e . " \r ` 0037720 ( g e t , n a m e ' % p r o 0037740 c e e d - a r g - c o l l e c t 0037760 o r ) ) \r \r \r \r \r 006 004 ( * | ; 0040000 ; | " U s e r - v i s i b l e 0040020 f o r m s . T h e s e s h 0040040 o u l d a l l b e e x t e 0040060 r n a l s y m b o l s . A n 0040100 y o t h e r s s h o u l d 0040120 b e i n t e r n a l . " ) 006 001 0040140 \r \r ( d e f d e f i n e r 006 002 0040160 d e f i n e - c o n d i t i o n 0040200 006 001 \r s t r u c t u r e s 0040220 \r ( n a m e p a r e n t 0040240 - t y p e & r e s t a r g s 0040260 ) \r " D e f i n e s a 0040300 n e w c o n d i t i o n t y 0040320 p e " \r ( c l : f l e t \r 0040340 ( ( e x t r a c t - s l 0040360 o t - n a m e ( x ) \r 0040400 ( s l o t - n a 0040420 m e x ) ) ) \r ( l e t 0040440 \r ( ( c l a s s - o p 0040460 t i o n s ` ( , @ ( c l : i f 0040500 % c o n d i t i o n - t y p e 0040520 s - r e a l ' ( ( : p r i n t 0040540 - f u n c t i o n % p r i n t 0040560 - c o n d i t i o n ) ) \r 0040600 0040620 ' ( ( 0040640 : t y p e l i s t ) \r 0040660 0040700 : n 0040720 a m e d ) ) ( : c o n s t r u 0040740 c t o r , ( % p r e f i x - s 0040760 y m b o l " % M A K E - " n 0041000 a m e ) ) \r 0041020 0041040 ( : c o p i e r n i l ) 0041060 \r 0041100 ( : 0041120 p r e d i c a t e n i l ) ) ) 0041140 \r r e p o r t e r 0041160 h a n d l e r e n c a p s u l 0041200 a t i o n ) \r ( c l : 0041220 m u l t i p l e - v a l u e - b 0041240 i n d \r ( k e y s 0041260 s l o t - d e s c r i p t i o n 0041300 s ) \r ( s t r i p - 0041320 k e y w o r d s a r g s ) \r 0041340 ( c l : s e t f s l 0041360 o t - d e s c r i p t i o n s 0041400 ( n o r m a l i z e - s l o t - 0041420 d e s c r i p t i o n s s l o 0041440 t - d e s c r i p t i o n s ) ) 0041460 \r ( a n d ( n e q 0041500 p a r e n t - t y p e n a m 0041520 e ) \r ( l 0041540 e t * ( ( a l l - s u p e r - 0041560 s l o t s ( s l o t - l i s t 0041600 p a r e n t - t y p e ) ) \r 0041620 0041640 ( r e d e f i n e d - s l o t 0041660 s ( 006 002 | f o r | 006 001 s l o 0041700 t 006 002 | i n | 006 001 s l o t - 0041720 d e s c r i p t i o n s \r 0041740 * 0042000 006 002 | w h e n | 006 001 ( c 0042020 l : m e m b e r ( c a r s l 0042040 o t ) \r 0042060 * 0042120 a l l - s u p e 0042140 r - s l o t s : k e y ( f u 0042160 n c t i o n e x t r a c t - s 0042200 l o t - n a m e ) \r 0042220 * 0042260 ) 0042300 006 002 | c o l l e c t | 006 001 s l 0042320 o t ) ) ) \r 0042340 ( c l : p u s h 0042360 ( l i s t * : i n c l u d e 0042400 p a r e n t - t y p e r e d e 0042420 f i n e d - s l o t s ) \r 0042440 0042460 c l a s s - o p t i o 0042500 n s ) \r 0042520 ( c l : s e t f s l 0042540 o t - d e s c r i p t i o n s 0042560 ( 006 002 | f o r | 006 001 s l o t 0042600 006 002 | i n | 006 001 s l o t - d e 0042620 s c r i p t i o n s \r 0042640 * 0042700 006 002 | u n l 0042720 e s s | 006 001 ( c l : m e m b e 0042740 r s l o t r e d e f i n e d 0042760 - s l o t s ) 006 002 | c o l l e 0043000 c t | 006 001 \r 0043020 * 0043120 s 0043140 l o t ) ) ) ) \r ( c 0043160 l : u n l e s s ( a n d n i 0043200 l % c o n d i t i o n - t y p 0043220 e s - r e a l ) \r 0043240 ( c l : s e t f e 0043260 n c a p s u l a t i o n ( m a 0043300 k e - e n c a p s u l a t i o n 0043320 n a m e ( n c o n c ( m a 0043340 p c a r ( s l o t - l i s t 0043360 p a r e n t - t y p e ) \r 0043400 * 0043500 ( f u n c t i o 0043520 n \r 0043540 * 0043620 e 0043640 x t r a c t - s l o t - n a m e 0043660 ) ) \r 0043700 * 0043760 ( m a p c a r s 0044000 l o t - d e s c r i p t i o n s 0044020 \r 0044040 * 0044120 ( f u n 0044140 c t i o n \r 0044160 * 0044260 e x t r a c t - s l o t - 0044300 n a m e ) ) ) ) ) ) \r 0044320 ( 006 002 | f o r | 006 001 p a i r 0044340 006 002 | i n | 006 001 k e y s \r 0044360 006 002 | d o | 006 001 0044400 \r ( d e s t r 0044420 u c t u r i n g - b i n d \r 0044440 ( k e y v a l 0044460 u e ) \r p a 0044500 i r \r ( c a 0044520 s e k e y ( : c o n c - n a 0044540 m e ( c l : p u s h p a i r 0044560 c l a s s - o p t i o n s ) ) 0044600 \r 0044620 ( : r e p o r t - f u n c t i 0044640 o n ( 006 002 | i f | 006 001 r e p 0044660 o r t e r \r 0044700 0044720 006 002 | t 0044740 h e n | 006 001 ( c l : e r r o r 0044760 " R e p o r t f u n c t i o 0045000 n a l r e a d y s p e c i f 0045020 i e d f o r ~ S . " \r 0045040 * 0045120 n a m e ) \r 0045140 0045160 006 002 | e 0045200 l s e | 006 001 ( c l : s e t f 0045220 r e p o r t e r v a l u e ) ) 0045240 ) \r 0045260 ( : r e p o r t ( 006 002 | i 0045300 f | 006 001 r e p o r t e r \r 0045320 0045340 006 002 | t h 0045360 e n | 006 001 ( c l : e r r o r 0045400 " R e p o r t f u n c t i o n 0045420 a l r e a d y s p e c i f i 0045440 e d f o r ~ S . " n a m e 0045460 ) \r 0045500 006 002 | 0045520 e l s e | 006 001 ( c l : s e t f 0045540 r e p o r t e r ( c l : i f 0045560 ( a n d n i l % c o n d i 0045600 t i o n - t y p e s - r e a l ) 0045620 \r 0045640 * 0045700 ( m a k 0045720 e - r e p o r t - f u n c t i o 0045740 n v a l u e ' c o n d i t i 0045760 o n \r 0046000 * 0046060 n a m e ) \r 0046100 * 0046160 ( m a k e - f a k 0046200 e - r e p o r t - f u n c t i o 0046220 n v a l u e \r 0046240 * 0046320 ' c o n d i 0046340 t i o n e n c a p s u l a t i 0046360 o n ) ) ) ) ) \r 0046400 ( : h a n d l e 0046420 r - f u n c t i o n ( 006 002 i f 0046440 006 001 h a n d l e r \r 0046460 * 0046520 006 002 t h e n 006 001 ( c l : e 0046540 r r o r " H a n d l e r a l 0046560 r e a d y s p e c i f i e d 0046600 f o r ~ S . " n a m e ) \r 0046620 * 0046660 006 002 e l s e 006 001 ( c l 0046700 : s e t f h a n d l e r v a 0046720 l u e ) ) ) \r 0046740 ( : h a n d l e 0046760 ( 006 002 i f 006 001 h a n d l e r \r 0047000 0047020 006 002 t 0047040 h e n 006 001 ( c l : e r r o r 0047060 " H a n d l e r a l r e a d y 0047100 s p e c i f i e d f o r ~ 0047120 S . " n a m e ) \r 0047140 0047160 006 002 e l s e 006 001 ( c 0047200 l : s e t f h a n d l e r ` 0047220 ( l a m b d a ( c o n d i t i 0047240 o n ) \r 0047260 * 0047320 , ( c l : i f 0047340 ( n u l l e n c a p s u l a t 0047360 i o n ) \r 0047400 * 0047460 v a l u e \r 0047500 * 0047560 ` ( l e t , e n c a p s 0047600 u l a t i o n , v a l u e ) ) 0047620 ) ) ) ) \r 0047640 ( o t h e r w i s e 0047660 ( c l : c e r r o r " S k i p 0047700 k e y - v a l u e p a i r " 0047720 " I l l e g a l k e y w o r 0047740 d ~ S i n ~ S . " k e y 0047760 \r 0050000 0050020 ' d e f i n e - c o n d i 0050040 t i o n ) ) ) ) ) \r 0050060 ` ( p r o g n ( d e f s t r u 0050100 c t ( 006 002 ( \ \ \ , n a m e 0050120 ) 006 001 , @ c l a s s - o p t i 0050140 o n s ) , @ s l o t - d e s c 0050160 r i p t i o n s ) \r \r 0050200 , @ ( c l : 0050220 i f ( n e q n a m e p a r 0050240 e n t - t y p e ) \r 0050260 0050300 ` ( ( f i x - i n h e r i t a 0050320 n c e - l i n k s ' , n a m e 0050340 ' , p a r e n t - t y p e ) ) 0050360 ) \r 0050400 , @ ( c l : i f ( c l : c o n 0050420 s p h a n d l e r ) \r 0050440 0050460 ( l e t ( ( h a n d l e 0050500 r - n a m e ( % s u f f i x - 0050520 s y m b o l n a m e " d e 0050540 f a u l t h a n d l e r " ) ) 0050560 ) \r 0050600 ( p 0050620 r o g 1 ` ( ( c l : s e t f 0050640 ( c l : s y m b o l - f u n c t 0050660 i o n ' , h a n d l e r - n a 0050700 m e ) \r 0050720 * 0050760 ( f u n c t i o n , h a n d l 0051000 e r ) ) ) ( s e t q h a n d 0051020 l e r h a n d l e r - n a m e 0051040 ) ) ) ) \r 0051060 ( c l : s e t f ( c o n 0051100 d i t i o n - h a n d l e r ' 0051120 , n a m e ) \r 0051140 , ( a n 0051160 d h a n d l e r ` ( f u n c 0051200 t i o n , h a n d l e r ) ) ) 0051220 \r , 0051240 @ ( c l : i f ( c l : c o n s 0051260 p r e p o r t e r ) \r 0051300 0051320 ( l e t ( ( r e p o r t 0051340 e r - n a m e ( % s u f f i x 0051360 - s y m b o l n a m e " r 0051400 e p o r t m e t h o d " ) ) ) 0051420 \r 0051440 ( p r 0051460 o g 1 ` ( ( c l : s e t f ( 0051500 c l : s y m b o l - f u n c t i 0051520 o n ' , r e p o r t e r - n a 0051540 m e ) \r 0051560 * 0051620 ( f u n c t i o n , r e p o r 0051640 t e r ) ) ) ( s e t q r e p 0051660 o r t e r r e p o r t e r - n 0051700 a m e ) ) ) ) \r 0051720 ( c l : s e t f ( 0051740 c o n d i t i o n - r e p o r t 0051760 e r ' , n a m e ) \r 0052000 0052020 , ( a n d r e p o r t e r ` 0052040 ( f u n c t i o n , r e p o r 0052060 t e r ) ) ) \r 0052100 ' , n a m e ) ) ) ) ) 0052120 \r \r ( d e f m a c r o 006 002 c l 0052140 : c h e c k - t y p e 006 001 ( p 0052160 l a c e t y p e s p e c & o 0052200 p t i o n a l s t r i n g ) \r 0052220 ( w i t h - e r r - l o o 0052240 p - v a r s " C H E C K - T Y 0052260 P E " ` ( c l : b l o c k , 0052300 b l o c k - n a m e \r 0052320 * 0052360 ( c l : t a g b o 0052400 d y , a g a i n \r 0052420 * 0052460 ( l e 0052500 t ( ( , v a l , p l a c e ) 0052520 ) \r 0052540 * 0052600 ( c l : w h 0052620 e n ( t y p e p , v a l ' 0052640 , t y p e s p e c ) \r 0052660 * 0052740 ( c l : r e 0052760 t u r n - f r o m , b l o c k 0053000 - n a m e ) ) \r 0053020 * 0053100 ( c l : s e t f , p l a c e 0053120 ( c h e c k - t y p e - f a i l 0053140 \r 0053160 * 0053240 t \r 0053260 * 0053360 ' , p l a c e \r 0053400 * 0053500 , v a l \r 0053520 * 0053620 ' , t y p e s p e c \r 0053640 * 0053740 , s t r i n g ) 0053760 ) \r 0054000 * 0054040 ( g o , a 0054060 g a i n ) ) ) ) ) ) \r \r ( d e f 0054100 m a c r o 006 002 c l : e t y p e 0054120 c a s e 006 001 ( k e y f o r m 0054140 & b o d y c l a u s e s ) \r 0054160 ( w i t h - g e n s y m s 0054200 ( v a l u e ) \r 0054220 " E T Y P E C A S E " \r 0054240 ( l e t ( ( c 0054260 a s e - s e l e c t o r s ( c 0054300 o n s ' o r ( c o l l e c t 0054320 - c a s e - s e l e c t o r s 0054340 c l a u s e s ' c l : e t y p 0054360 e c a s e ) ) ) ) \r 0054400 ` ( l e t ( 0054420 ( , v a l u e , k e y f o r m 0054440 ) ) \r 0054460 ( c l : t y p e 0054500 c a s e , v a l u e , @ c l 0054520 a u s e s ( t ( c h e c k - 0054540 t y p e - f a i l n i l ' , 0054560 k e y f o r m , v a l u e \r 0054600 * 0054660 ' , c a 0054700 s e - s e l e c t o r s n i l 0054720 ) ) ) ) ) ) ) \r \r ( d e f m a c 0054740 r o 006 002 c t y p e c a s e 006 001 0054760 ( k e y p l a c e & b o d y 0055000 c l a u s e s ) \r ( l e 0055020 t ( ( c a s e - s e l e c t o 0055040 r s ( c o n s ' o r ( c o 0055060 l l e c t - c a s e - s e l e c 0055100 t o r s c l a u s e s ' c t 0055120 y p e c a s e ) ) ) ) \r 0055140 ( w i t h - e r r - l o 0055160 o p - v a r s \r 0055200 " C T Y P E C A S E " \r 0055220 ` ( c l : b l o c k 0055240 , b l o c k - n a m e ( c l 0055260 : t a g b o d y \r 0055300 0055320 , a g a i n 0055340 \r 0055360 0055400 ( l e t ( ( , v a l , k 0055420 e y p l a c e ) ) \r 0055440 * 0055500 ( c l : r e t u r n - f r o m 0055520 , b l o c k - n a m e \r 0055540 * 0055600 ( c l : t y p 0055620 e c a s e , v a l , @ c l a 0055640 u s e s \r 0055660 * 0055720 ( t ( c l : 0055740 s e t f , k e y p l a c e ( 0055760 c h e c k - t y p e - f a i l \r 0056000 * 0056100 t \r 0056120 * 0056220 ' , k e y p l a 0056240 c e \r 0056260 * 0056340 , v 0056360 a l \r 0056400 * 0056460 ' , 0056500 c a s e - s e l e c t o r s n 0056520 i l ) ) \r 0056540 * 0056600 ( g o 0056620 , a g a i n ) ) ) ) ) ) ) ) ) ) 0056640 \r \r ( d e f m a c r o 006 002 c l 0056660 : e c a s e 006 001 ( k e y f o r 0056700 m & r e s t c l a u s e s ) 0056720 \r ( w i t h - g e n s y m 0056740 s ( v a l u e ) \r 0056760 " E C A S E " \r 0057000 ( l e t ( ( c a s 0057020 e - s e l e c t o r s ( c o l 0057040 l e c t - c a s e - s e l e c t 0057060 o r s c l a u s e s ' c l : 0057100 e c a s e ) ) ) \r 0057120 ( c l : i f c 0057140 a s e - s e l e c t o r s ` ( 0057160 l e t ( ( , v a l u e , k e 0057200 y f o r m ) ) \r 0057220 * 0057260 ( c a s e , v a l u e 0057300 , @ c l a u s e s ( t ( e c 0057320 a s e - f a i l n i l \r 0057340 * 0057440 ' , k e y f o 0057460 r m \r 0057500 * 0057560 , 0057600 v a l u e \r 0057620 * 0057720 ' , c a s e - s e l e c t o 0057740 r s ) ) ) ) \r 0057760 ` ( c 0060000 l : e r r o r " E m p t y c 0060020 a s e s t a t e m e n t . " ) 0060040 ) ) ) ) \r \r ( d e f m a c r o 0060060 006 002 c l : c c a s e 006 001 ( k e 0060100 y f o r m & b o d y c l a u 0060120 s e s ) \r ( l e t ( ( c 0060140 a s e - s e l e c t o r s ( c 0060160 o l l e c t - c a s e - s e l e 0060200 c t o r s c l a u s e s ' c 0060220 l : c c a s e ) ) ) \r 0060240 ( c l : u n l e s s c a 0060260 s e - s e l e c t o r s ( c l 0060300 : e r r o r " E m p t y C C 0060320 A S E . " ) ) \r 0060340 ( w i t h - e r r - l o o p - v 0060360 a r s \r " C C 0060400 A S E " \r ` ( 0060420 c l : b l o c k , b l o c k - 0060440 n a m e ( c l : t a g b o d y 0060460 \r 0060500 0060520 , a g a i n \r 0060540 0060560 ( l e t ( 0060600 ( , v a l , k e y f o r m ) ) 0060620 \r 0060640 0060660 ( c l : r e t u r 0060700 n - f r o m , b l o c k - n a 0060720 m e \r 0060740 * 0061000 ( c a s e , v a l , @ c l a 0061020 u s e s \r 0061040 * 0061100 ( t ( c l : s 0061120 e t f , k e y f o r m ( e c 0061140 a s e - f a i l \r 0061160 * 0061260 t \r 0061300 * 0061360 ' , k 0061400 e y f o r m \r 0061420 * 0061520 , v a l \r 0061540 * 0061620 ' , 0061640 c a s e - s e l e c t o r s ) ) 0061660 \r 0061700 * 0061740 ( g o , a g a i 0061760 n ) ) ) ) ) ) ) ) ) ) \r \r ( d e 0062000 f m a c r o 006 002 c l : a s s e 0062020 r t 006 001 ( t e s t - f o r m 0062040 & o p t i o n a l p l a c e s 0062060 s t r i n g & r e s t a r 0062100 g s ) \r ( c l : u n l e s 0062120 s ( c l : l i s t p p l a c 0062140 e s ) \r ( c 0062160 l : e r r o r " ~ S s h o u 0062200 l d b e a l i s t o f 0062220 p l a c e s . " p l a c e s ) 0062240 ) \r ( w i t h - e r r - l 0062260 o o p - v a r s " A S S E R T 0062300 " ` ( c l : b l o c k , b l 0062320 o c k - n a m e ( c l : t a g 0062340 b o d y , a g a i n ( c l : 0062360 w h e n \r 0062400 * 0062500 , t e s t - f o r m \r 0062520 * 0062620 ( c l : r e t u r n 0062640 - f r o m \r 0062660 * 0062760 , b l o c k - n a m e \r 0063000 * 0063100 ( c l : v a 0063120 l u e s ) ) ) \r 0063140 * 0063220 ( a s s e r t - f a 0063240 i l , s t r i n g , @ a r g 0063260 s ) \r 0063300 * 0063360 ( g o , a g a i n ) ) ) ) ) 0063400 \r \r ( d e f m a c r o 006 002 h a 0063420 n d l e r - b i n d 006 001 ( b i 0063440 n d i n g s & r e s t f o r 0063460 m s ) " E v a l f o r m s 0063500 u n d e r t e m p o r a r y 0063520 n e w c o n d i t i o n h a 0063540 n d l e r s . " \r ` ( l e 0063560 t ( ( * c o n d i t i o n - h 0063600 a n d l e r - b i n d i n g s * 0063620 ( l i s t * , @ ( e x t r a 0063640 c t - c o n d i t i o n - b i n 0063660 d i n g s ( \r 0063700 * 0064000 n o r m a l i z e - c o n d 0064020 i t i o n - c l a u s e s \r 0064040 * 0064140 b i n d 0064160 i n g s ) ) \r 0064200 * 0064240 * c o n d i t i o 0064260 n - h a n d l e r - b i n d i n 0064300 g s * ) ) ) \r 0064320 , @ f o r m s ) ) \r \r ( d e f m 0064340 a c r o 006 002 c o n d i t i o n 0064360 - b i n d 006 001 ( b i n d i n g 0064400 s & r e s t f o r m s ) \r 0064420 0064440 " E v a l f o 0064460 r m s u n d e r t e m p o r 0064500 a r y n e w c o n d i t i o 0064520 n h a n d l e r s ; s y n o 0064540 n y m f o r H A N D L E R - 0064560 B I N D " \r ` ( h a n d l 0064600 e r - b i n d , b i n d i n g 0064620 s , @ f o r m s ) ) \r \r ( d e 0064640 f m a c r o 006 002 c o n d i t i 0064660 o n - c a s e 006 001 ( f o r m 0064700 & r e s t b i n d i n g s ) 0064720 \r 0064740 " E v a 0064760 l f o r m u n d e r c o n 0065000 d i t i o n h a n d l e r s 0065020 t h a t p r o v i d e a l t 0065040 e r n a t e c o n t i n u a t 0065060 i o n s . " \r ( w i t h - 0065100 g e n s y m s \r ( c o n 0065120 d i t i o n c l : v a l u e s 0065140 b n a m e h a n d l e r ) \r 0065160 " C O N D I T I O N - C 0065200 A S E " \r ( l e t \r 0065220 ( ( c l a u s e s ( n o 0065240 r m a l i z e - c o n d i t i o 0065260 n - c l a u s e s b i n d i n 0065300 g s ) ) ) \r ( 006 002 | i 0065320 f | 006 001 ( n u l l c l a u s 0065340 e s ) \r 006 002 | 0065360 t h e n | 006 001 f o r m \r 0065400 006 002 | e l s e | 006 001 ` 0065420 ( l e t * ( ( , c o n d i t i 0065440 o n n i l ) \r 0065460 ( , 0065500 c l : v a l u e s ( c o n d i 0065520 t i o n - b l o c k \r 0065540 0065560 , b 0065600 n a m e \r 0065620 0065640 ( l e t ( ( , 0065660 h a n d l e r ( f u n c t i o 0065700 n ( c l : l a m b d a ( c ) 0065720 \r 0065740 * 0066020 ( c l : s e t f , c 0066040 o n d i t i o n c ) \r 0066060 * 0066160 ( c o n d i t i o n - r e t u r 0066200 n , b n a m e ) ) ) ) ) \r 0066220 * 0066260 ( h a n d l e r - b 0066300 i n d ( ( , ( c l : m a p c a 0066320 r ( f u n c t i o n c a r ) 0066340 \r 0066360 * 0066440 c l a u s e s ) , h a n d l 0066460 e r ) ) \r 0066500 * 0066540 ( c l : m u l t i p l e 0066560 - v a l u e - l i s t , f o r 0066600 m ) ) ) ) ) ) \r 0066620 ( c l 0066640 : i f , c o n d i t i o n , 0066660 ( 006 002 | i f | 006 001 ( e q l ( 0066700 l e n g t h c l a u s e s ) \r 0066720 * 0067000 1 ) \r 0067020 * 0067060 006 002 | t h e n | 006 001 ( c a 0067100 d r ( c a r ( m a s s a g e 0067120 - c a t c h - c o n d i t i o n 0067140 - c l a u s e s \r 0067160 * 0067240 c 0067260 l a u s e s c o n d i t i o n 0067300 ) ) ) \r 0067320 0067340 006 002 0067360 | e l s e | 006 001 ` ( c o n d i 0067400 t i o n - t y p e c a s e , c 0067420 o n d i t i o n \r 0067440 * 0067520 , @ ( m a s s a g e - c a t 0067540 c h - c o n d i t i o n - c l a 0067560 u s e s c l a u s e s \r 0067600 * 0067700 c o n d i t i o n ) \r 0067720 * 0070000 ( t ( c l : e r r o r 0070020 \r 0070040 * 0070100 " B u g i n c o n d 0070120 i t i o n - c a s e ! ~ & U n e 0070140 x p e c t e d c o n d i t i o 0070160 n : ~ S . " \r 0070200 * 0070260 , c o n d 0070300 i t i o n ) ) ) ) ( c l : v a 0070320 l u e s - l i s t \r 0070340 * 0070440 , c l 0070460 : v a l u e s ) ) ) ) ) ) ) \r \r 0070500 ( d e f m a c r o 006 002 r e a l 0070520 - c o n d i t i o n - c a s e 006 0070540 001 ( f o r m & r e s t c a 0070560 s e s ) \r 0070600 0070620 " E v a l f o r m u n d e 0070640 r c o n d i t i o n h a n d 0070660 l e r s t h a t p r o v i d 0070700 e a l t e r n a t e c o n t 0070720 i n u a t i o n s . " \r ( 0070740 w i t h - g e n s y m s \r 0070760 ( o u t e r i n n e r c o 0071000 n d i t i o n d u m m y ) \r 0071020 " C O N D I T I O N - C A 0071040 S E " \r ` ( c l : b l o 0071060 c k \r , o u t e r \r 0071100 ( c l : m u l t i p 0071120 l e - v a l u e - c a l l \r 0071140 ' c l : f u n c a l l 0071160 \r ( c l : b l o c 0071200 k \r , i n n e r 0071220 \r ( h a n d l e 0071240 r - b i n d \r 0071260 , ( 006 002 f o r 006 001 c a s e 006 0071300 002 i n 006 001 c a s e s \r 0071320 006 002 c o l l e 0071340 c t 006 001 \r 0071360 ( d e s t r u c t u r i n g 0071400 - b i n d \r 0071420 ( t y p e s b v l . 0071440 b o d y ) \r 0071460 c a s e \r 0071500 ` ( , t y p e s 0071520 \r 0071540 ( f u n c t i o n ( c l : l 0071560 a m b d a \r 0071600 0071620 ( , c o n d i t i o n ) \r 0071640 0071660 ( c l : r e t 0071700 u r n - f r o m \r 0071720 0071740 , i n n e r \r 0071760 0072000 ( c l : v a l u 0072020 e s \r 0072040 0072060 ( f u n c t i o n ( c l : l a 0072100 m b d a \r 0072120 0072140 , @ ( 0072160 c l : i f b v l ( l i s t 0072200 b v l ) \r 0072220 * 0072260 ` ( ( , d u m m y ) 0072300 \r 0072320 * 0072360 ( 006 002 d e c l a r e 006 001 0072400 ( i g n o r e , d u m m y ) 0072420 ) ) ) \r 0072440 0072460 , @ b o 0072500 d y ) ) \r 0072520 0072540 , c o n d i t i o n ) ) ) ) 0072560 ) ) ) \r ( c l 0072600 : r e t u r n - f r o m , o u 0072620 t e r , f o r m ) ) ) ) ) ) ) 0072640 \r \r ( d e f m a c r o 006 002 i g 0072660 n o r e - e r r o r s 006 001 ( & 0072700 b o d y f o r m s ) " E v a 0072720 l f o r m s w i t h h a n 0072740 d l e r f o r a n y c o n 0072760 d i t i o n o f t y p e E 0073000 R R O R . " \r ` ( c o n d 0073020 i t i o n - c a s e ( p r o g 0073040 n , @ f o r m s ) \r 0073060 ( e r r o r ( c o 0073100 n d i t i o n ) \r 0073120 n i l ) ) 0073140 ) \r \r ( d e f m a c r o 006 002 p 0073160 r o c e e d - c a s e 006 001 ( f 0073200 o r m & r e s t c l a u s e 0073220 s ) \r 0073240 0073260 " 0073300 E v a l f o r m s , e s t a 0073320 b l i s h i n g a p l a c e 0073340 t o p r o c e e d f r o m 0073360 e r r o r s . " \r ( w i 0073400 t h - g e n s y m s \r ( 0073420 s e l e c t o r c l : v a l u 0073440 e s t a g ) \r " P R O 0073460 C E E D - C A S E " \r ( 0073500 c l : m u l t i p l e - v a l u 0073520 e - b i n d \r ( c a s 0073540 e s b o d i e s ) \r 0073560 ( s p l i t - p r o c e e d - c 0073600 l a u s e s c l a u s e s t 0073620 a g ) \r ( 006 002 | i f | 0073640 006 001 ( n u l l c a s e s ) \r 0073660 006 002 | t h e n 0073700 | 006 001 f o r m \r 0073720 006 002 | e l s e | 006 001 ` ( d e s 0073740 t r u c t u r i n g - b i n d 0073760 ( , s e l e c t o r \ \ \ , 0074000 c l : v a l u e s ) \r 0074020 0074040 ( l e t ( ( , t a g ( l i 0074060 s t n i l ) ) ) \r 0074100 0074120 ( c l : c a t c h , 0074140 t a g ( c o n s : n o r m a 0074160 l ( l e t ( ( * p r o c e e 0074200 d - c a s e s * ( l i s t * 0074220 , @ c a s e s \r 0074240 * 0074340 * 0074360 p r o c e e d - c a s e s * \r 0074400 * 0074520 ) ) ) \r 0074540 * 0074620 ( c l : m u l t i p 0074640 l e - v a l u e - l i s t , f 0074660 o r m ) ) ) ) ) \r 0074700 ( 0074720 c l : i f ( e q , s e l e c 0074740 t o r : n o r m a l ) \r 0074760 0075000 ( c l : v a 0075020 l u e s - l i s t , c l : v a 0075040 l u e s ) \r 0075060 0075100 ( c l : a p p l y , ( 006 0075120 002 | i f | 006 001 ( e q l ( l e 0075140 n g t h b o d i e s ) \r 0075160 * 0075240 1 ) \r 0075260 0075300 006 0075320 002 | t h e n | 006 001 ( c a d r 0075340 ( c a r b o d i e s ) ) \r 0075360 * 0075420 006 002 | e l s e | 0075440 006 001 ` ( c a s e , s e l e c 0075460 t o r , @ b o d i e s ) ) , 0075500 c l : v a l u e s ) ) ) ) ) ) ) 0075520 \r \r ( d e f m a c r o 006 002 r e 0075540 a l - p r o c e e d - c a s e 006 0075560 001 ( f o r m & r e s t c l 0075600 a u s e s ) \r 0075620 * 0075660 " E v a l f o r m s , 0075700 e s t a b l i s h i n g a p 0075720 l a c e t o p r o c e e d 0075740 f r o m e r r o r s . " \r 0075760 ( w i t h - g e n s y m s ( 0076000 o u t e r t a g d u m m y ) 0076020 \r " P R O C 0076040 E E D - C A S E " \r 0076060 ` ( c l : b l o c k , 0076100 o u t e r ( l e t * ( ( , t 0076120 a g ( l i s t n i l ) ) \r 0076140 * 0076200 ( * p r o c e e d - c a s e 0076220 s * ( l i s t * , @ ( m a p 0076240 c a r c l a u s e s \r 0076260 * 0076360 ( f u n c t i o n ( c l : l a 0076400 m b d a ( c l a u s e ) \r 0076420 * 0076540 ( \r 0076560 * 0076660 p r o c e e d - c a s e - f 0076700 r o m - c l a u s e \r 0076720 * 0077040 c l a u s e t a g \r 0077060 * 0077200 d u m m y ) ) ) ) \r 0077220 * 0077300 * p r o c e e 0077320 d - c a s e s * ) ) ) \r 0077340 0077360 ( c 0077400 l : m u l t i p l e - v a l u e 0077420 - c a l l ' c l : f u n c a l 0077440 l ( c l : c a t c h , t a g 0077460 \r 0077500 * 0077560 ( c 0077600 l : r e t u r n - f r o m \r 0077620 * 0077720 , o u t 0077740 e r \r 0077760 * 0100060 , f o r m ) ) ) ) ) ) ) \r \r ( 0100100 d e f d e f i n e r 006 002 d e f 0100120 i n e - p r o c e e d - f u n c 0100140 t i o n 006 001 \r f u n c t i 0100160 o n s \r ( n a m e & r e 0100200 s t t a i l & a u x v a r 0100220 s ) \r ( c l : m u l t i p 0100240 l e - v a l u e - b i n d \r 0100260 ( t e s t r e p o r t a 0100300 r g l i s t ) \r ( p r o 0100320 c e s s - p r o c e e d - k e y 0100340 w o r d s n a m e t a i l ) 0100360 \r ( c l : s e t f v a 0100400 r s ( m a p c a r a r g l i 0100420 s t ( f u n c t i o n ( l a 0100440 m b d a ( x ) \r 0100460 * 0100520 ( c l : i f ( c 0100540 l : s y m b o l p x ) \r 0100560 * 0100640 x \r 0100660 * 0100720 ( c a r x ) 0100740 ) ) ) ) ) \r ( c l : u n 0100760 l e s s t e s t ( c l : s e 0101000 t f t e s t ' t r u e ) ) \r 0101020 ( c l : u n l e s s r 0101040 e p o r t ( c l : s e t f r 0101060 e p o r t ' d e f a u l t - p 0101100 r o c e e d - r e p o r t e r ) 0101120 ) \r ` ( p r o g n , @ 0101140 ( c l : i f ( c l : c o n s p 0101160 t e s t ) \r 0101200 ( l e t 0101220 ( ( t e s t e r ( % s u f f 0101240 i x - s y m b o l n a m e " 0101260 - p r o c e e d - t e s t " ) ) 0101300 ) \r 0101320 ( p r o 0101340 g 1 ` ( ( c l : s e t f ( c 0101360 l : s y m b o l - f u n c t i o 0101400 n ' , t e s t e r ) \r 0101420 * 0101460 ( f u n c t i o n 0101500 , t e s t ) ) ) ( s e t q t 0101520 e s t t e s t e r ) ) ) ) \r 0101540 ( c l : s 0101560 e t f ( d e f a u l t - p r o 0101600 c e e d - t e s t ' , n a m e 0101620 ) \r 0101640 ' , t e s t ) \r 0101660 , @ ( c l : i 0101700 f ( c l : c o n s p r e p o 0101720 r t ) \r 0101740 ( l e t ( ( 0101760 r e p o r t e r ( % s u f f i 0102000 x - s y m b o l n a m e " - 0102020 p r o c e e d - r e p o r t e r 0102040 " ) ) ) \r 0102060 ( 0102100 p r o g 1 ` ( ( c l : s e t f 0102120 ( c l : s y m b o l - f u n c 0102140 t i o n ' , r e p o r t e r ) 0102160 \r 0102200 0102220 ( f u n c 0102240 t i o n , r e p o r t ) ) ) 0102260 ( s e t q r e p o r t r e p 0102300 o r t e r ) ) ) ) \r 0102320 ( c l : s e t f ( 0102340 d e f a u l t - p r o c e e d - 0102360 r e p o r t ' , n a m e ) \r 0102400 0102420 ' , r e p o r t ) \r 0102440 ( c l : s e t f 0102460 ( p r o c e e d - a r g - c o 0102500 l l e c t o r ' , n a m e ) \r 0102520 0102540 ( f u n c t i o n ( c l 0102560 : l a m b d a ( & o p t i o n 0102600 a l c o n d i t i o n , @ a 0102620 r g l i s t ) \r 0102640 0102660 ( l i s 0102700 t , @ v a r s ) ) ) ) \r 0102720 ( c l : d e f 0102740 u n ( 006 002 \ \ \ , 006 001 n a m 0102760 e ) ( & o p t i o n a l c o 0103000 n d i t i o n , @ a r g l i s 0103020 t ) ( c o n d i t i o n - c a 0103040 s e \r 0103060 * 0103140 ( i n v o k e - p r 0103160 o c e e d - c a s e \r 0103200 * 0103260 ' 0103300 , n a m e c o n d i t i o n 0103320 , @ v a r s ) \r 0103340 * 0103420 ( b a d - 0103440 p r o c e e d - c a s e n i l 0103460 n i l ) ) ) \r ) ) ) \r \r ( d e 0103500 f m a c r o 006 002 c a t c h - a 0103520 b o r t 006 001 ( p r i n t - f o 0103540 r m & b o d y f o r m s ) 0103560 ` ( p r o c e e d - c a s e ( 0103600 p r o g n , @ f o r m s ) \r 0103620 * 0103700 ( a b o r t ( c o 0103720 n d i t i o n ) \r 0103740 * 0104020 : r e p o r t \r 0104040 * 0104120 , p r 0104140 i n t - f o r m : t e s t t 0104160 r u e ( c l : v a l u e s \r 0104200 * 0104320 n i l c o n d i t i 0104340 o n ) ) \r 0104360 * 0104420 ) ) \r \r 0104440 \r ( p u t p r o p s 006 002 c l - 0104460 e r r o r f i l e t y p e 006 001 0104500 c l : c o m p i l e - f i l e 0104520 ) \r ( d e c l a r e \ : d o n 0104540 t e v a l @ l o a d d o e v a 0104560 l @ c o m p i l e d o n t c o 0104600 p y c o m p i l e r v a r s 0104620 \r \r ( a d d t o v a r 006 002 n l 0104640 a m a 006 001 ) \r \r ( a d d t o v 0104660 a r 006 002 n l a m l 006 001 ) \r \r 0104700 ( a d d t o v a r 006 002 l a m a 0104720 006 001 ) \r ) \r ( p u t p r o p s 0104740 c l - e r r o r c o p y r i 0104760 g h t ( " X e r o x C o r p 0105000 o r a t i o n " 1 9 8 6 ) ) \r 0105020 ( d e c l a r e \ : d o n t c 0105040 o p y \r ( f i l e m a p ( 0105060 n i l ) ) ) \r s t o p \r 0105074