$ od -c -N 50000 [eris]<LispCore>SOURCES>CL-ERROR!10
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 4 - O c t -
0000120 8 6 1 9 : 1 1 : 2 7 " 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 \ ; 1 0 006 001 3 4 9 9 7 \r \r
0000220 | c h a n g e s |
0000240 | t o : | ( v a r s c l -
0000260 e r r o r c o m s ) \r
0000300
0000320 ( f u n c t i o n s n o r
0000340 m a l i z e - s l o t - d e s c
0000360 r i p t i o n s s p l i t - p
0000400 r o c e e d - c l a u s e s \r
0000420
0000440 p r
0000460 o c e e d - c a s e - f r o m -
0000500 c l a u s e p r o c e s s - p
0000520 r o c e e d - k e y w o r d s
0000540 c h e c k - * c a s e - s e l e
0000560 c t o r \r
0000600
0000620 c o l l e c t - c a s e
0000640 - s e l e c t o r s d e f i n
0000660 e - c o n d i t i o n c l : c
0000700 t y p e c a s e c l : e c a s
0000720 e ) \r \r | p r e v i
0000740 o u s | | d a t e : | " 2 1
0000760 - O c t - 8 6 1 3 : 0 1 : 0 9
0001000 " { e r i s } < l i s p c o r
0001020 e > s o u r c e s > c l - e r r
0001040 o r . \ ; 9 ) \r \r \r ; C o p y
0001060 r i g h t ( c ) 1 9 8 6 b
0001100 y X e r o x C o r p o r a t
0001120 i o n . A l l r i g h t s
0001140 r e s e r v e d . \r \r ( p r e
0001160 t t y c o m p r i n t c l - e
0001200 r r o r c o m s ) \r \r ( r p a q
0001220 q 006 002 c l - e r r o r c o m s
0001240 006 001 \r ( ( c o m
0001260 s ( * | ; ; | \r
0001300 " T e m p o
0001320 r a r y b o o t s t r a p p i
0001340 n g s t u f f . A n y t h i
0001360 n g i n h e r e g e t s
0001400 c h a n g e d o n c e C L
0001420 s t a r t s w o r k i n g . "
0001440 \r
0001460 ) \r
0001500 ( f u n c t i o n s c o n
0001520 d i t i o n - t y p e c a s e
0001540 c o n d i t i o n - b l o c k
0001560 c o n d i t i o n - r e t u r n
0001600 ) ) \r ( c o m s
0001620 ( * | ; ; | " I n t e r n
0001640 a l s t u f f . " ) \r
0001660 ( e x p o r
0001700 t ( v a r i a b l e s % c o
0001720 n d i t i o n - t y p e s - r e
0001740 a l ) ) \r
0001760 ( f u n c t i o n s d e
0002000 f a u l t - p r o c e e d - r e
0002020 p o r t ) \r
0002040 ( f u n c t i o n s w
0002060 i t h - g e n s y m s w i t h
0002100 - e r r - l o o p - v a r s s
0002120 t r i p - k e y w o r d s m a
0002140 k e - f a k e - r e p o r t - f
0002160 u n c t i o n \r
0002200 m a
0002220 k e - r e p o r t - f u n c t i
0002240 o n m a k e - e n c a p s u l
0002260 a t i o n n o r m a l i z e -
0002300 s l o t - d e s c r i p t i o n
0002320 s \r
0002340 e x t r a c t -
0002360 c o n d i t i o n - b i n d i n
0002400 g s n o r m a l i z e - c o n
0002420 d i t i o n - c l a u s e s \r
0002440
0002460 m a s s a g e - c a t
0002500 c h - c o n d i t i o n - c l a
0002520 u s e s s p l i t - p r o c e
0002540 e d - c l a u s e s p r o c e
0002560 e d - c a s e - f r o m - c l a
0002600 u s e \r
0002620 p r o c e s
0002640 s - p r o c e e d - k e y w o r
0002660 d s c h e c k - * c a s e - s
0002700 e l e c t o r c o l l e c t -
0002720 c a s e - s e l e c t o r s \r
0002740
0002760 n o - p r o c e e d -
0003000 t e s t % p r e f i x - s y m
0003020 b o l % s u f f i x - s y m b
0003040 o l p r o c e e d - a r g - c
0003060 o l l e c t o r ) ) \r
0003100 ( c o m s ( * | ; ; |
0003120 \r " U s
0003140 e r - v i s i b l e f o r m s
0003160 . T h e s e s h o u l d a
0003200 l l b e e x t e r n a l s
0003220 y m b o l s . A n y o t h e
0003240 r s s h o u l d b e i n t
0003260 e r n a l . " \r
0003300 ) \r
0003320 ( f u n c t i
0003340 o n s d e f i n e - c o n d i
0003360 t i o n c l : c h e c k - t y
0003400 p e c l : e t y p e c a s e
0003420 c l : c t y p e c a s e c l :
0003440 e c a s e c l : c c a s e \r
0003460
0003500 c l : a s s e r t h
0003520 a n d l e r - b i n d c o n d
0003540 i t i o n - b i n d c o n d i
0003560 t i o n - c a s e r e a l - c
0003600 o n d i t i o n - c a s e \r
0003620
0003640 i g n o r e - e r r o r
0003660 s p r o c e e d - c a s e r
0003700 e a l - p r o c e e d - c a s e
0003720 d e f i n e - p r o c e e d -
0003740 f u n c t i o n c a t c h - a
0003760 b o r t \r
0004000 ) ) \r
0004020 ( p r o p f i l e t
0004040 y p e c l - e r r o r ) \r
0004060 ( d e c l a r e \ :
0004100 d o n t e v a l @ l o a d d
0004120 o e v a l @ c o m p i l e d o
0004140 n t c o p y c o m p i l e r v
0004160 a r s ( a d d v a r s ( n l
0004200 a m a ) \r
0004220
*
0004320 ( n l a m l ) \r
0004340
*
0004440 ( l a m a ) ) ) )
0004460 ) \r \r \r \r 006 004 ( * | ; ; | "
0004500 T e m p o r a r y b o o t s t
0004520 r a p p i n g s t u f f . A
0004540 n y t h i n g i n h e r e
0004560 g e t s c h a n g e d o n c
0004600 e C L s t a r t s w o r k
0004620 i n g . " ) 006 001 \r \r ( d e f m a
0004640 c r o 006 002 c o n d i t i o n -
0004660 t y p e c a s e 006 001 ( o b j e
0004700 c t & r e s t c l a u s e s
0004720 ) \r ( l e t \r ( (
0004740 v a l ( c l : g e n s y m ) )
0004760 ) \r ( c l : i f % c o
0005000 n d i t i o n - t y p e s - r e
0005020 a l ` ( c l : t y p e c a s e
0005040 , o b j e c t , @ c l a u s
0005060 e s ) \r `
0005100 ( l e t ( ( , v a l , o b j
0005120 e c t ) ) \r
0005140 ( c o n d \r
0005160
0005200 , @ ( c l : m a p c a r ( f
0005220 u n c t i o n ( c l : l a m b
0005240 d a \r
0005260
0005300 (
0005320 c l a u s e ) \r
0005340
*
0005400 ( d e s t r u c t u r i
0005420 n g - b i n d \r
0005440
*
0005500 ( s e l e c t o r .
0005520 b o d y ) \r
0005540
*
0005600 c l a u s e \r
0005620
*
0005660 ( c l : i f (
0005700 e q s e l e c t o r t ) \r
0005720
*
0006000 c l a u s e \r
0006020
*
0006060 ` (
0006100 ( c o n d i t i o n - t y p e p
0006120 , v a l ' , s e l e c t o r
0006140 ) \r
0006160
*
0006220 , @ b o d y ) )
0006240 ) ) ) \r
0006260
0006300 c l a u s e s ) ) ) ) ) ) \r \r
0006320 ( d e f m a c r o 006 002 c o n d
0006340 i t i o n - b l o c k 006 001 ( t
0006360 a g & b o d y f o r m s )
0006400 ` ( c l : c a t c h ' , t a g
0006420 , @ f o r m s ) ) \r \r ( d e f
0006440 m a c r o 006 002 c o n d i t i o
0006460 n - r e t u r n 006 001 ( t a g
0006500 & o p t i o n a l r e s u l t
0006520 ) ` ( c l : t h r o w ' , t
0006540 a g , r e s u l t ) ) \r \r \r \r
0006560 \r 006 004 ( * | ; ; | " I n t e
0006600 r n a l s t u f f . " ) 006 001 \r
0006620 \r ( * F O L L O W I N G D E
0006640 F I N I T I O N S E X P O R T
0006660 E D ) \r \r \r ( c l : d e f c o n
0006700 s t a n t 006 002 % c o n d i t i
0006720 o n - t y p e s - r e a l 006 001
0006740 n i l ) \r \r \r \r ( * E N D E
0006760 X P O R T E D D E F I N I T I
0007000 O N S ) \r \r ( d e f m a c r o
0007020 006 002 d e f a u l t - p r o c e e
0007040 d - r e p o r t 006 001 ( p r o c
0007060 e e d - t y p e ) ` ( g e t
0007100 , p r o c e e d - t y p e ' %
0007120 d e f a u l t - p r o c e e d -
0007140 r e p o r t \r
0007160
*
0007220 ' d e
0007240 f a u l t - p r o c e e d - r e
0007260 p o r t e r ) ) \r \r ( d e f m a
0007300 c r o 006 002 w i t h - g e n s y
0007320 m s 006 001 ( v a r s p r e f i
0007340 x & b o d y b o d y ) \r
0007360 ` ( l e t , ( m a p c a r
0007400 v a r s ( f u n c t i o n (
0007420 c l : l a m b d a ( v a r ) \r
0007440
*
0007500 ` ( , v a r (
0007520 g e n s y m , p r e f i x ) )
0007540 ) ) ) , @ b o d y ) ) \r \r ( d
0007560 e f m a c r o 006 002 w i t h - e
0007600 r r - l o o p - v a r s 006 001 (
0007620 p r e f i x & b o d y b o d
0007640 y ) ` ( w i t h - g e n s y m
0007660 s ( v a l b l o c k - n a m
0007700 e a g a i n ) \r
0007720
*
0010000 , p r e f i x \r
0010020
*
0010100 , @ b o d y ) ) \r \r ( c l
0010120 : d e f u n 006 002 s t r i p - k
0010140 e y w o r d s 006 001 ( a r g s )
0010160 ( c l : v a l u e s ( 006 002 f
0010200 o r 006 001 006 002 o l d 006 001 a r g
0010220 s 006 002 o n 006 001 a r g s 006 002
0010240 b y 006 001 c d d r \r
0010260
*
0010320 006 002 w h i l e 006
0010340 001 ( c l : k e y w o r d p (
0010360 c l : f i r s t a r g s ) ) \r
0010400
*
0010440 006 002
0010460 c o l l e c t 006 001 ( l i s t
0010500 ( c l : f i r s t a r g s ) \r
0010520
*
0010600 ( c l :
0010620 s e c o n d a r g s ) ) ) \r
0010640
*
0010700 a r g s ) ) \r \r ( c
0010720 l : d e f u n 006 002 m a k e - f
0010740 a k e - r e p o r t - f u n c t
0010760 i o n 006 001 ( d a t u m b o u
0011000 n d - v a r & o p t i o n a l
0011020 e n c a p s u l a t i o n ) \r
0011040 ( c l : e t y p e c a s e
0011060 d a t u m ( s t r i n g `
0011100 ( l a m b d a ( d a t u m s
0011120 t r e a m ) \r
0011140
0011160 ( 006 002 d e c l
0011200 a r e 006 001 ( i g n o r e d a
0011220 t u m ) ) \r
0011240
0011260 ( c l : w r i t
0011300 e - s t r i n g , d a t u m
0011320 s t r e a m ) ) ) \r
0011340 ( l i s t ` ( l a m b
0011360 d a ( , b o u n d - v a r *
0011400 s t a n d a r d - o u t p u t *
0011420 ) \r
0011440 , ( c l : i f ( n u
0011460 l l e n c a p s u l a t i o n
0011500 ) \r
0011520 d a t
0011540 u m \r
0011560 ` (
0011600 l e t , e n c a p s u l a t i
0011620 o n , d a t u m ) ) ) ) ) ) \r
0011640 \r ( c l : d e f u n 006 002 m a k
0011660 e - r e p o r t - f u n c t i o
0011700 n 006 001 ( d a t u m b o u n d
0011720 - v a r & o p t i o n a l t
0011740 y p e - n a m e ) \r ( c l
0011760 : e t y p e c a s e d a t u m
0012000 ( s t r i n g ` ( l a m b d
0012020 a ( d a t u m s t r e a m )
0012040 \r
0012060
0012100 ( 006 002 d e c l a r e 006 001
0012120 ( i g n o r e d a t u m ) ) \r
0012140
*
0012200 ( c l : w r i t e - s t r i
0012220 n g , d a t u m s t r e a m
0012240 ) ) ) \r ( l
0012260 i s t ` ( l a m b d a ( , b
0012300 o u n d - v a r * s t a n d a
0012320 r d - o u t p u t * ) \r
0012340 ,
0012360 ( c l : i f t y p e - n a m e
0012400 ` ( 006 002 w i t h 006 001 , t y p
0012420 e - n a m e , b o u n d - v a
0012440 r , d a t u m ) d a t u m )
0012460 ) ) ) ) \r \r ( c l : d e f u n
0012500 006 002 m a k e - e n c a p s u l a
0012520 t i o n 006 001 ( c o n d i t i o
0012540 n - t y p e s l o t - n a m e
0012560 s ) \r ( m a p c a r ( c
0012600 l : r e m o v e ' - - d u m m
0012620 y - s l o t - - s l o t - n a
0012640 m e s ) \r (
0012660 f u n c t i o n ( l a m b d a
0012700 ( s l o t ) \r
0012720 ` (
0012740 , s l o t ( , ( % s u f f i x
0012760 - s y m b o l c o n d i t i o
0013000 n - t y p e ( c l : c o n c a
0013020 t e n a t e ' s t r i n g "
0013040 - " \r
0013060
*
0013140 ( c l : s y m
0013160 b o l - n a m e s l o t ) ) )
0013200 \r
0013220
0013240 c o n d i t i o n
0013260 ) ) ) ) ) ) \r \r ( c l : d e f u
0013300 n 006 002 n o r m a l i z e - s l
0013320 o t - d e s c r i p t i o n s 006
0013340 001 ( s l o t s ) \r ( m a
0013360 p c a r s l o t s ( f u n c
0013400 t i o n ( c l : l a m b d a
0013420 ( s l o t ) \r
0013440
0013460 ( 006 002 i f 006 001
0013500 ( l i s t p s l o t ) \r
0013520
*
0013560 006 002 t h e n 006 001 ( 006 002
0013600 i f 006 001 ( e q u a l ( l e n
0013620 g t h s l o t ) \r
0013640
*
0013720 1 ) \r
0013740
*
0014000 006 002 t h e n 006 001 ( a p p e
0014020 n d s l o t ' ( n i l : r
0014040 e a d o n l y t ) ) \r
0014060
*
0014120 006 002 e l s e 006
0014140 001 ` ( , ( c a r s l o t )
0014160 , ( c a d r s l o t ) : r e
0014200 a d - o n l y t \r
0014220
*
0014300 , @ ( c d d r s l o t
0014320 ) ) ) \r
0014340
0014360 006 002 e l s e 006 001
0014400 ` ( , s l o t n i l : r e
0014420 a d - o n l y t ) ) ) ) ) ) \r
0014440 \r ( c l : d e f u n 006 002 e x t
0014460 r a c t - c o n d i t i o n - b
0014500 i n d i n g s 006 001 ( c l a u s
0014520 e s ) \r ( m a p c a r c
0014540 l a u s e s ( f u n c t i o n
0014560 ( c l : l a m b d a ( c l a
0014600 u s e ) \r
0014620
0014640 ` ( c o n s
0014660 ' , ( c l : f i r s t c l a u
0014700 s e ) , ( c l : s e c o n d
0014720 c l a u s e ) ) ) ) ) ) \r \r ( c
0014740 l : d e f u n 006 002 n o r m a l
0014760 i z e - c o n d i t i o n - c l
0015000 a u s e s 006 001 ( c l a u s e s
0015020 ) \r ( m a p c o n c c l
0015040 a u s e s ( f u n c t i o n
0015060 ( c l : l a m b d a \r
0015100
0015120 ( c l a u s
0015140 e ) \r
0015160
0015200 ( l e t ( ( c o n d i t i
0015220 o n s ( c l : f i r s t c l
0015240 a u s e ) ) ) \r
0015260
0015300 ( c l :
0015320 t y p e c a s e \r
0015340
0015360 c o
0015400 n d i t i o n s \r
0015420
0015440 ( l
0015460 i s t ( c l : i f ( e q (
0015500 c l : f i r s t c o n d i t i
0015520 o n s ) \r
0015540
*
0015600 ' q u o t
0015620 e ) \r
0015640
*
0015700 ( c l : e r r o r \r
0015720
*
0016000 " B a d c o
0016020 n d i t i o n s p e c ~ s .
0016040 S h o u l d b e u n q u o
0016060 t e d . " \r
0016100
*
0016160 c o n d i t i o n s ) \r
0016200
*
0016240 ( m
0016260 a p c a r c o n d i t i o n s
0016300 \r
0016320
*
0016360 ( f u n c t
0016400 i o n ( c l : l a m b d a \r
0016420
*
0016520 ( c ) \r
0016540
*
0016620 ( c l : i
0016640 f ( c l : s y m b o l p c )
0016660 \r
0016700
*
0016760 ( c o n
0017000 s c ( c d r c l a u s e )
0017020 ) \r
0017040
*
0017120 ( c l
0017140 : e r r o r \r
0017160
*
0017220 " B a d c o n d i t i o n
0017240 s p e c ~ s . S h o u l d
0017260 b e l i s t o f u n q u o
0017300 t e d s y m b o l s . " \r
0017320
*
0017440 c o n d i t i o n s ) ) ) ) )
0017460 ) ) \r
0017500
0017520 ( c l : s y m b
0017540 o l ( l i s t c l a u s e )
0017560 ) \r
0017600
0017620 ( t ( c l : e r
0017640 r o r \r
0017660
0017700 " B a
0017720 d c o n d i t i o n s p e c
0017740 ~ s . S h o u l d b e s
0017760 y m b o l o r l i s t o f
0020000 s y m b o l s . " \r
0020020
*
0020060 c o n d i
0020100 t i o n s ) ) ) ) ) ) ) ) \r \r (
0020120 c l : d e f u n 006 002 m a s s a
0020140 g e - c a t c h - c o n d i t i
0020160 o n - c l a u s e s 006 001 ( c l
0020200 a u s e s i n i t - v a l u e
0020220 ) \r ( m a p c a r c l a
0020240 u s e s ( f u n c t i o n (
0020260 c l : l a m b d a \r
0020300
0020320 ( c l a u s e )
0020340 \r
0020360 (
0020400 d e s t r u c t u r i n g - b i
0020420 n d \r
0020440
0020460 ( s e l e c t o r b v l
0020500 . f o r m s ) \r
0020520
0020540 c l a u s e \r
0020560
0020600 ( c
0020620 l : i f ( n u l l b v l ) \r
0020640
*
0020700 ( c o n s s e l e
0020720 c t o r f o r m s ) \r
0020740
*
0021000 ( l i s t s e l e c t o r
0021020 ` ( l e t ( , ( l i s t (
0021040 c a r b v l ) \r
0021060
*
0021140 i n i t
0021160 - v a l u e ) , @ ( c d r b
0021200 v l ) ) \r
0021220
*
0021300 , @ f o r m s ) ) ) ) ) ) ) ) \r
0021320 \r ( c l : d e f u n 006 002 s p l
0021340 i t - p r o c e e d - c l a u s
0021360 e s 006 001 ( c l a u s e s t a
0021400 g ) \r ( l e t \r (
0021420 c a s e s b o d i e s ) \r
0021440 ( 006 002 f o r 006 001 c l a u s
0021460 e 006 002 i n 006 001 c l a u s e s
0021500 006 002 a s 006 001 s e l e c t o r
0021520 006 002 f r o m 006 001 0 \r
0021540 006 002 d o 006 001 ( d e s t r
0021560 u c t u r i n g - b i n d \r
0021600 ( n a m e v
0021620 a r s ) \r
0021640 c l a u s e \r
0021660 ( c l : m u l t i p l e - v
0021700 a l u e - b i n d \r
0021720 ( t e s t r e p o
0021740 r t t a i l ) \r
0021760 ( p r o c e s s - p r
0022000 o c e e d - k e y w o r d s n
0022020 a m e ( c d d r c l a u s e
0022040 ) ) \r (
0022060 006 002 i f 006 001 ( n u l l n a m
0022100 e ) \r
0022120 006 002 t h e n 006 001 ( c l :
0022140 u n l e s s t e s t ( c l :
0022160 s e t f t e s t ' t r u e )
0022200 ) \r
0022220 ( c l : u n l e s
0022240 s r e p o r t ( c l : e r r
0022260 o r \r
0022300
*
0022340 " U n n a m e d p r o c e
0022360 e d c a s e s m u s t h a
0022400 v e a r e p o r t m e t h
0022420 o d : ~ S " \r
0022440
*
0022500 c l a u s e ) ) \r
0022520 006 002
0022540 e l s e 006 001 ( c l : u n l e s
0022560 s t e s t ( 006 002 i f 006 001 (
0022600 n o t ( g e t n a m e ' %
0022620 d e f a u l t - p r o c e e d -
0022640 t e s t ) ) \r
0022660
0022700 006 002
0022720 t h e n 006 001 ( c l : w a r n
0022740 \r
0022760
0023000 " N o
0023020 t e s t s p e c i f i e d f
0023040 o r p r o c e e d t y p e
0023060 ~ A : m a y b e u n d e f
0023100 i n e d . " \r
0023120
*
0023160 n a m e )
0023200 ) ) \r
0023220 ( c l : u n l e s s
0023240 r e p o r t ( c l : s e t f
0023260 r e p o r t ` ( c l : l a m
0023300 b d a ( p c s t r e a m ) \r
0023320
*
0023400 ( c l
0023420 : f u n c a l l ( d e f a u l
0023440 t - p r o c e e d - r e p o r t
0023460 \r
0023500
*
0023560 ' , n a m
0023600 e ) \r
0023620
*
0023700 p c s t r e a m
0023720 ) ) ) ) ) \r
0023740 ( c l : p u s h ` ( m a k
0023760 e - p r o c e e d - c a s e :
0024000 n a m e ' , n a m e : t a g
0024020 , t a g : s e l e c t o r
0024040 , s e l e c t o r : t e s t \r
0024060
0024100 , ( a
0024120 n d t e s t ` ( f u n c t i
0024140 o n , t e s t ) ) : r e p o
0024160 r t ( f u n c t i o n , r e
0024200 p o r t ) ) c a s e s ) \r
0024220 ( c l : p u
0024240 s h ` ( , s e l e c t o r (
0024260 f u n c t i o n ( c l : l a m
0024300 b d a , v a r s , @ t a i l
0024320 ) ) ) b o d i e s ) ) ) ) \r
0024340 ( c l : v a l u e s ( r
0024360 e v e r s e c a s e s ) \r
0024400 ( r e v e r s
0024420 e b o d i e s ) ) ) ) \r \r ( c
0024440 l : d e f u n 006 002 p r o c e e
0024460 d - c a s e - f r o m - c l a u
0024500 s e 006 001 ( c l a u s e t a g
0024520 d u m m y ) \r ( d e s t
0024540 r u c t u r i n g - b i n d \r
0024560 ( n a m e v a r s .
0024600 t a i l ) \r c l a u s e
0024620 \r ( c l : m u l t i p l
0024640 e - v a l u e - b i n d \r
0024660 ( t e s t r e p o r t b
0024700 o d y ) \r ( p r o c e
0024720 s s - p r o c e e d - k e y w o
0024740 r d s n a m e t a i l ) \r
0024760 ( 006 002 i f 006 001 ( n u l
0025000 l n a m e ) \r
0025020 006 002 t h e n 006 001 ( c l : u n
0025040 l e s s t e s t ( c l : s e
0025060 t f t e s t ' t r u e ) ) \r
0025100 ( c
0025120 l : u n l e s s r e p o r t
0025140 ( c l : e r r o r " U n n a m
0025160 e d p r o c e e d c a s e s
0025200 m u s t h a v e a r e p
0025220 o r t m e t h o d : ~ S "
0025240 \r
0025260
0025300 c l a u s e ) )
0025320 \r 006 002 e l s e 006 001
0025340 ( c l : u n l e s s t e s t
0025360 ( 006 002 i f 006 001 ( n o t ( g
0025400 e t n a m e ' % d e f a u l
0025420 t - p r o c e e d - t e s t ) )
0025440 \r
0025460
0025500 006 002 t h e n 006 001 ( c l : w a
0025520 r n \r
0025540
0025560 "
0025600 N o t e s t s p e c i f i e
0025620 d f o r p r o c e e d t y
0025640 p e ~ A : m a y b e u n
0025660 d e f i n e d . " \r
0025700
*
0025740 n a m e ) ) ) \r
0025760 ( c l : u
0026000 n l e s s r e p o r t ( c l
0026020 : s e t f r e p o r t ` ( c
0026040 l : l a m b d a ( p c s t r
0026060 e a m ) \r
0026100
*
0026140 ( c l : f
0026160 u n c a l l ( d e f a u l t -
0026200 p r o c e e d - r e p o r t \r
0026220
*
0026320 ' , n a m e ) \r
0026340
*
0026420 p c s t r e a m
0026440 ) ) ) ) ) \r ` ( m a k
0026460 e - r e a l - p r o c e e d - c
0026500 a s e : n a m e ' , n a m e
0026520 : t a g , t a g : c o n t
0026540 i n u a t i o n \r
0026560 ( f u n c t i o n
0026600 ( c l : l a m b d a ( & o p t
0026620 i o n a l , @ ( o r v a r s
0026640 ( l i s t d u m m y ) ) ) \r
0026660
0026700 , @
0026720 b o d y ) ) \r
0026740 : t e s t \r
0026760 , ( a n d t e s
0027000 t ` ( f u n c t i o n , t e
0027020 s t ) ) : r e p o r t ( f u
0027040 n c t i o n , r e p o r t ) )
0027060 ) ) ) \r \r ( c l : d e f u n 006
0027100 002 p r o c e s s - p r o c e e d
0027120 - k e y w o r d s 006 001 ( n a m
0027140 e a r g ) \r ( l e t (
0027160 t e s t r e p o r t ) \r
0027200 ( c l : m u l t i p l
0027220 e - v a l u e - b i n d \r
0027240 ( k e y s t a i l
0027260 ) \r ( s t r i
0027300 p - k e y w o r d s a r g ) \r
0027320 ( 006 002 | f o r
0027340 | 006 001 p a i r 006 002 | i n | 006
0027360 001 k e y s \r
0027400 006 002 | d o | 006 001 ( d e s
0027420 t r u c t u r i n g - b i n d
0027440 ( k e y v a l u e ) \r
0027460
0027500 p a i r \r
0027520
0027540 ( c a s e k e y ( : t e s
0027560 t ( c l : i f t e s t ( c
0027600 l : e r r o r \r
0027620
*
0027660 " D u p l i
0027700 c a t e t e s t f o r m s
0027720 p e c i f i e d f o r p r o
0027740 c e e d t y p e ~ S . " \r
0027760
*
0030040 n a m e
0030060 ) ) \r
0030100
0030120 ( c l :
0030140 s e t f t e s t v a l u e )
0030160 ) \r
0030200
0030220 ( : c o n d i t i o n ( c l :
0030240 i f t e s t ( c l : e r r o
0030260 r \r
0030300
*
0030340 " D u p l i c a t e t
0030360 e s t f o r m s p e c i f i
0030400 e d f o r p r o c e e d t
0030420 y p e ~ S . " \r
0030440
*
0030520 n a m e ) ) \r
0030540
*
0030600 ( c l : s e t f t e s t
0030620 ` ( c l : l a m b d a ( c )
0030640 \r
0030660
*
0030720 ( c o n
0030740 d i t i o n - t y p e p c '
0030760 , v a l u e ) ) ) ) \r
0031000
0031020 ( : r e p o r
0031040 t - f u n c t i o n ( c l : i
0031060 f r e p o r t ( c l : e r r
0031100 o r \r
0031120
*
0031160 " D u p l i c a t e r e
0031200 p o r t f o r m s p e c i f
0031220 i e d f o r p r o c e e d
0031240 t y p e ~ S . " \r
0031260
*
0031360 n a m e ) ) \r
0031400
0031420 ( c l :
0031440 s e t f r e p o r t v a l u
0031460 e ) ) \r
0031500
0031520 ( : r e p o r t ( c l : i
0031540 f r e p o r t ( c l : e r r
0031560 o r \r
0031600
*
0031640 " D u p l i c a t e r e
0031660 p o r t f o r m s p e c i f
0031700 i e d f o r p r o c e e d
0031720 t y p e ~ S . " \r
0031740
*
0032020 n a m e ) ) \r
0032040
*
0032100 ( c l : s e t f r e p o
0032120 r t ( m a k e - r e p o r t -
0032140 f u n c t i o n v a l u e '
0032160 p r o c e e d - c a s e ) ) ) \r
0032200
0032220 ( c
0032240 l : o t h e r w i s e ( c l :
0032260 c e r r o r " I g n o r e k
0032300 e y / v a l u e p a i r " \r
0032320
*
0032400 " I l l e g a l k e y w
0032420 o r d ~ S i n p r o c e e
0032440 d c a s e ~ S . " k e y
0032460 n a m e ) \r
0032500
0032520 ) ) ) ) \r
0032540 ( c l : v a l
0032560 u e s t e s t r e p o r t
0032600 t a i l ) ) ) ) \r \r ( c l : d e
0032620 f u n 006 002 c h e c k - * c a s
0032640 e - s e l e c t o r 006 001 ( s e
0032660 l e c t o r n a m e ) ( c l
0032700 : i f ( o r ( e q s e l e
0032720 c t o r ' t ) \r
0032740
*
0033020 ( e q s e l e c t o r
0033040 ' c l : o t h e r w i s e ) ) \r
0033060
*
0033140 ( c l : e r r o r
0033160 " ~ A n o t a l l o w e d
0033200 i n t h e ~ A f o r m . "
0033220 \r
0033240
*
0033300 s
0033320 e l e c t o r n a m e ) \r
0033340
*
0033420 s e l e c t o r ) ) \r \r
0033440 ( c l : d e f u n 006 002 c o l l
0033460 e c t - c a s e - s e l e c t o
0033500 r s 006 001 ( c l a u s e s n a
0033520 m e ) \r ( m a p c o n c
0033540 c l a u s e s ( f u n c t i o
0033560 n ( c l : l a m b d a ( c l
0033600 a u s e ) \r
0033620
0033640 ( 006 002 i f
0033660 006 001 ( a n d ( c l : c o n s
0033700 p ( c a r c l a u s e ) ) \r
0033720
*
0033760 ( f
0034000 m e m b n a m e ' ( c l : e
0034020 c a s e c l : c c a s e ) ) )
0034040 \r
0034060
0034100 006 002 t h e n
0034120 006 001 ( c l : c o p y - l i s t
0034140 ( c a r c l a u s e ) ) \r
0034160
*
0034220 006 002 e l s e 006 001 (
0034240 l i s t ( c h e c k - * c a s
0034260 e - s e l e c t o r ( c a r
0034300 c l a u s e ) \r
0034320
*
0034400 n a m e ) ) ) ) ) ) ) \r \r ( c
0034420 l : d e f u n 006 002 n o - p r o
0034440 c e e d - t e s t 006 001 ( n a m
0034460 e & a u x o n c e ) \r
0034500 ( p r o c e e d - c a s e ( h
0034520 a n d l e r - b i n d ( ( n o
0034540 - p r o c e e d - t e s t ( f
0034560 u n c t i o n ( c l : l a m b
0034600 d a \r
0034620
*
0034660 (
0034700 c ) \r
0034720
*
0034760 (
0035000 c l : w h e n ( e q ( n o -
0035020 p r o c e e d - t e s t - n a m
0035040 e c ) \r
0035060
*
0035140 n a
0035160 m e ) \r
0035200
*
0035260 ( c l : i f o n
0035300 c e ( c l : t h r o w ' \r
0035320
*
0035440 s k i p - p r o c e e d -
0035460 c a s e \r
0035500
*
0035600 n i l )
0035620 \r
0035640
*
0035720 ( c l : s
0035740 e t f o n c e t ) ) ) ) ) )
0035760 ) \r
0036000 ( c l : e r
0036020 r o r ' n o - p r o c e e d -
0036040 t e s t : n a m e n a m e )
0036060 ) \r ( n i l
0036100 n i l : r e p o r t " U s
0036120 e F A L S E f o r t h e
0036140 t e s t " : c o n d i t i o n
0036160 n o - p r o c e e d - t e s t
0036200 ( f u n c t i o n f a l s e
0036220 ) ) \r ( p r
0036240 o c e e d n i l : r e p o r
0036260 t " M a k e T R U E t h e
0036300 d e f a u l t t e s t " :
0036320 c o n d i t i o n n o - p r o
0036340 c e e d - t e s t \r
0036360 ( c l : s
0036400 e t f ( d e f a u l t - p r o
0036420 c e e d - t e s t n a m e ) \r
0036440
0036460 ( f u n c t i o
0036500 n t r u e ) ) ) ) ) \r \r ( c l
0036520 : d e f u n 006 002 % p r e f i x
0036540 - s y m b o l 006 001 ( p r e f i
0036560 x c l : s y m b o l ) ( c l
0036600 : i n t e r n ( c l : c o n c
0036620 a t e n a t e ' s t r i n g
0036640 p r e f i x ( c l : s y m b o
0036660 l - n a m e \r
0036700
*
0037000 c l
0037020 : s y m b o l ) ) \r
0037040
*
0037100 ( c l
0037120 : s y m b o l - p a c k a g e
0037140 c l : s y m b o l ) ) ) \r \r ( c
0037160 l : d e f u n 006 002 % s u f f i
0037200 x - s y m b o l 006 001 ( c l : s
0037220 y m b o l s u f f i x ) ( c
0037240 l : i n t e r n ( c l : c o n
0037260 c a t e n a t e ' s t r i n g
0037300 ( c l : s y m b o l - n a m e
0037320 \r
0037340
*
0037440 c l : s y m b o
0037460 l ) \r
0037500
*
0037560 s u f f i x ) \r
0037600
*
0037640 ( c l :
0037660 s y m b o l - p a c k a g e c
0037700 l : s y m b o l ) ) ) \r \r ( d e
0037720 f m a c r o 006 002 p r o c e e d
0037740 - a r g - c o l l e c t o r 006 001
0037760 ( n a m e ) " F u n c t i o
0040000 n t h a t c o l l e c t s
0040020 u s e r - s p e c i f i e d o
0040040 p t i o n a l a r g s ( e x
0040060 c l u d i n g t h e c o n d
0040100 i t i o n ) f o r a n a m
0040120 e d p r o c e e d c a s e .
0040140 " \r ` ( g e t , n a m e
0040160 ' % p r o c e e d - a r g - c
0040200 o l l e c t o r ) ) \r \r \r \r \r 006
0040220 004 ( * | ; ; | " U s e r - v
0040240 i s i b l e f o r m s . T h
0040260 e s e s h o u l d a l l b
0040300 e e x t e r n a l s y m b o
0040320 l s . A n y o t h e r s s
0040340 h o u l d b e i n t e r n a
0040360 l . " ) 006 001 \r \r ( d e f d e f i
0040400 n e r 006 002 d e f i n e - c o n
0040420 d i t i o n 006 001 \r s t r u
0040440 c t u r e s \r ( n a m e
0040460 p a r e n t - t y p e & r e s
0040500 t a r g s ) \r " D e f i
0040520 n e s a n e w c o n d i t
0040540 i o n t y p e " \r ( l e
0040560 t \r ( ( c l a s s - o p
0040600 t i o n s ` ( , @ ( c l : i f
0040620 % c o n d i t i o n - t y p e
0040640 s - r e a l ' ( ( : p r i n t
0040660 - f u n c t i o n % p r i n t
0040700 - c o n d i t i o n ) ) \r
0040720
0040740 ' ( ( :
0040760 t y p e l i s t ) \r
0041000
0041020 : n a m
0041040 e d ) ) ( : c o n s t r u c t
0041060 o r , ( % p r e f i x - s y m
0041100 b o l " % M A K E - " n a m
0041120 e ) ) \r
0041140
0041160 ( : c o p i e r n i l ) \r
0041200
0041220 ( : p r e d
0041240 i c a t e n i l ) ) ) \r
0041260 r e p o r t e r h a n d l
0041300 e r e n c a p s u l a t i o n
0041320 ) \r ( c l : m u l t i p
0041340 l e - v a l u e - b i n d \r
0041360 ( k e y s s l o t - d e
0041400 s c r i p t i o n s ) \r
0041420 ( s t r i p - k e y w o r d s
0041440 a r g s ) \r ( c l :
0041460 s e t f s l o t - d e s c r i
0041500 p t i o n s ( n o r m a l i z
0041520 e - s l o t - d e s c r i p t i
0041540 o n s s l o t - d e s c r i p
0041560 t i o n s ) ) \r ( a n
0041600 d ( n e q p a r e n t - t y
0041620 p e n a m e ) \r
0041640 ( l e t * ( ( a l l - s
0041660 u p e r - s l o t s ( s l o t
0041700 - l i s t p a r e n t - t y p
0041720 e ) ) \r
0041740 ( r e d e f i n e d -
0041760 s l o t s ( 006 002 f o r 006 001 s
0042000 l o t 006 002 i n 006 001 s l o t -
0042020 d e s c r i p t i o n s 006 002 w
0042040 h e n 006 001 ( c l : m e m b e r
0042060 ( c a r s l o t ) \r
0042100
*
0042200 a l l - s u p
0042220 e r - s l o t s ) \r
0042240
0042260 006
0042300 002 c o l l e c t 006 001 s l o t )
0042320 ) ) \r
0042340 ( c l : p u s h ( l i s
0042360 t * : i n c l u d e p a r e
0042400 n t - t y p e r e d e f i n e
0042420 d - s l o t s ) \r
0042440
0042460 c l a s s - o p t i o n s ) \r
0042500 (
0042520 c l : s e t f s l o t - d e s
0042540 c r i p t i o n s ( 006 002 f o r
0042560 006 001 s l o t 006 002 i n 006 001 s
0042600 l o t - d e s c r i p t i o n s
0042620 \r
0042640
0042660 006
0042700 002 u n l e s s 006 001 ( c l : m e
0042720 m b e r s l o t r e d e f i
0042740 n e d - s l o t s ) 006 002 c o l
0042760 l e c t 006 001 s l o t ) ) ) \r
0043000 ) \r
0043020 ( c l : u n l e s s ( a n d
0043040 n i l % c o n d i t i o n - t
0043060 y p e s - r e a l ) \r
0043100 ( c l : s e t f
0043120 e n c a p s u l a t i o n ( m
0043140 a k e - e n c a p s u l a t i o
0043160 n n a m e ( a p p e n d (
0043200 s l o t - l i s t p a r e n t
0043220 - t y p e ) \r
0043240
*
0043320 ( m a p c a
0043340 r s l o t - d e s c r i p t i
0043360 o n s \r
0043400
*
0043460 ( f
0043500 u n c t i o n c a r ) ) ) ) )
0043520 ) \r ( 006 002 f o r 006 001
0043540 p a i r 006 002 i n 006 001 k e y s
0043560 \r 006 002 d o 006 001
0043600 ( d e s t r u c t u r i n g - b
0043620 i n d \r
0043640 ( k e y v a l u e ) \r
0043660 p a i r \r
0043700 ( c a s e k
0043720 e y ( : c o n c - n a m e (
0043740 c l : p u s h p a i r c l a
0043760 s s - o p t i o n s ) ) \r
0044000 (
0044020 : r e p o r t - f u n c t i o n
0044040 ( 006 002 i f 006 001 r e p o r t e
0044060 r \r
0044100
0044120 006 002 t h e n
0044140 006 001 ( c l : e r r o r " R e
0044160 p o r t f u n c t i o n a l
0044200 r e a d y s p e c i f i e d
0044220 f o r ~ S . " \r
0044240
*
0044300 n a
0044320 m e ) \r
0044340
0044360 006 002 e l s e
0044400 006 001 ( c l : s e t f r e p o
0044420 r t e r v a l u e ) ) ) \r
0044440
0044460 ( : r e p o r t ( 006 002 i f 006 001
0044500 r e p o r t e r \r
0044520
0044540 006 002 t h e n 006
0044560 001 ( c l : e r r o r " R e p
0044600 o r t f u n c t i o n a l r
0044620 e a d y s p e c i f i e d f
0044640 o r ~ S . " n a m e ) \r
0044660
0044700 006 002 e l s
0044720 e 006 001 ( c l : s e t f r e p
0044740 o r t e r ( c l : i f ( a n
0044760 d n i l % c o n d i t i o n
0045000 - t y p e s - r e a l ) \r
0045020
*
0045100 ( m a k e - r e
0045120 p o r t - f u n c t i o n v a
0045140 l u e ' c o n d i t i o n \r
0045160
*
0045260 n a m e ) \r
0045300
*
0045360 ( m a k e - f a k e - r e
0045400 p o r t - f u n c t i o n v a
0045420 l u e \r
0045440
*
0045520 ' c o n d i t i o n
0045540 e n c a p s u l a t i o n ) )
0045560 ) ) ) \r
0045600 ( : h a n d l e r -
0045620 f u n c t i o n ( 006 002 i f 006 001
0045640 h a n d l e r \r
0045660
*
0045720 006 002 t h e n 006 001 ( c l : e
0045740 r r o r " H a n d l e r a l
0045760 r e a d y s p e c i f i e d
0046000 f o r ~ S . " n a m e ) \r
0046020
*
0046060 006 002 e l s e 006 001 (
0046100 c l : s e t f h a n d l e r
0046120 v a l u e ) ) ) \r
0046140 ( : h a n
0046160 d l e ( 006 002 i f 006 001 h a n d
0046200 l e r \r
0046220
0046240 006 002 t h e n 006 001 ( c l :
0046260 e r r o r " H a n d l e r a
0046300 l r e a d y s p e c i f i e d
0046320 f o r ~ S . " n a m e ) \r
0046340
0046360 006 002 e
0046400 l s e 006 001 ( c l : s e t f h
0046420 a n d l e r ` ( l a m b d a
0046440 ( c o n d i t i o n ) \r
0046460
*
0046540 , ( c l : i f ( n u l l
0046560 e n c a p s u l a t i o n ) \r
0046600
*
0046660 v a l
0046700 u e \r
0046720
*
0047000 ` ( l e t , e n c a p s u l
0047020 a t i o n , v a l u e ) ) ) )
0047040 ) ) \r
0047060 ( c l : o t h e r w i
0047100 s e ( c l : c e r r o r " S
0047120 k i p k e y - v a l u e p a
0047140 i r " " I l l e g a l k e y
0047160 w o r d ~ S i n ~ S . "
0047200 k e y \r
0047220
0047240 ' d e f i
0047260 n e - c o n d i t i o n ) ) ) )
0047300 ) \r ` ( p r o g n (
0047320 c l : d e f s t r u c t ( 006 002
0047340 ( \ \ \ , n a m e ) 006 001 , @
0047360 c l a s s - o p t i o n s ) ,
0047400 @ s l o t - d e s c r i p t i o
0047420 n s ) \r \r
0047440 , @ ( c l : i f ( n e q
0047460 n a m e p a r e n t - t y p
0047500 e ) \r
0047520 ` ( ( f i x -
0047540 i n h e r i t a n c e - l i n k
0047560 s ' , n a m e ' , p a r e n
0047600 t - t y p e ) ) ) \r
0047620 , @ ( c l : i f
0047640 ( c l : c o n s p h a n d l e
0047660 r ) \r
0047700 ( l e t ( (
0047720 h a n d l e r - n a m e ( % s
0047740 u f f i x - s y m b o l n a m
0047760 e " d e f a u l t h a n d
0050000 l e r " ) ) ) \r
0050020
0050040 ( p r o g 1 ` ( ( c l :
0050060 s e t f ( c l : s y m b o l -
0050100 f u n c t i o n ' , h a n d l
0050120 e r - n a m e ) \r
0050140
*
0050200 ( f u n c t i o n , h
0050220 a n d l e r ) ) ) ( s e t q
0050240 h a n d l e r h a n d l e r -
0050260 n a m e ) ) ) ) \r
0050300 ( c l : s e t f (
0050320 c o n d i t i o n - h a n d l e
0050340 r ' , n a m e ) \r
0050360 , (
0050400 a n d h a n d l e r ` ( f u
0050420 n c t i o n , h a n d l e r )
0050440 ) ) \r
0050460 , @ ( c l : i f ( c l : c o n
0050500 s p r e p o r t e r ) \r
0050520
0050540 ( l e t ( ( r e p o r t
0050560 e r - n a m e ( % s u f f i x
0050600 - s y m b o l n a m e " r
0050620 e p o r t m e t h o d " ) ) )
0050640 \r
0050660 ( p r o
0050700 g 1 ` ( ( c l : s e t f ( c
0050720 l : s y m b o l - f u n c t i o
0050740 n ' , r e p o r t e r - n a m
0050760 e ) \r
0051000
0051020 ( f
0051040 u n c t i o n , r e p o r t e
0051060 r ) ) ) ( s e t q r e p o r
0051100 t e r r e p o r t e r - n a m
0051120 e ) ) ) ) \r
0051140 ( c l : s e t f ( c o n
0051160 d i t i o n - r e p o r t e r
0051200 ' , n a m e ) \r
0051220 , ( a n
0051240 d r e p o r t e r ` ( f u n
0051260 c t i o n , r e p o r t e r )
0051300 ) ) \r
0051320 ' , n a m e ) ) ) ) \r \r ( d e f
0051340 m a c r o 006 002 c l : c h e c k
0051360 - t y p e 006 001 ( p l a c e t
0051400 y p e s p e c & o p t i o n a
0051420 l s t r i n g ) \r ( w i
0051440 t h - e r r - l o o p - v a r s
0051460 " C H E C K - T Y P E " ` (
0051500 c l : b l o c k , b l o c k -
0051520 n a m e \r
0051540
*
0051600 ( c l : t a g b o d y , a g
0051620 a i n \r
0051640
*
0051700 ( l e t ( ( , v
0051720 a l , p l a c e ) ) \r
0051740
*
0052020 ( c l : w h e n ( t y
0052040 p e p , v a l ' , t y p e s
0052060 p e c ) \r
0052100
*
0052160 ( c l : r e t u r n - f
0052200 r o m , b l o c k - n a m e )
0052220 ) \r
0052240
*
0052300 ( c l : s e
0052320 t f , p l a c e ( c h e c k
0052340 - t y p e - f a i l \r
0052360
*
0052460 t \r
0052500
*
0052560 '
0052600 , p l a c e \r
0052620
*
0052720 , v a l \r
0052740
*
0053020 ' ,
0053040 t y p e s p e c \r
0053060
*
0053160 , s t r i n g ) ) \r
0053200
*
0053260 ( g o , a g a i n ) )
0053300 ) ) ) ) \r \r ( d e f m a c r o
0053320 006 002 c l : e t y p e c a s e 006 001
0053340 ( k e y f o r m & b o d y
0053360 c l a u s e s ) \r ( w i t
0053400 h - g e n s y m s ( v a l u e
0053420 ) \r " E T Y
0053440 P E C A S E " \r
0053460 ( l e t ( ( c a s e - s e
0053500 l e c t o r s ( c o n s ' o
0053520 r ( c o l l e c t - c a s e -
0053540 s e l e c t o r s c l a u s e
0053560 s ' c l : e t y p e c a s e )
0053600 ) ) ) \r
0053620 ` ( l e t ( ( , v a l u
0053640 e , k e y f o r m ) ) \r
0053660
0053700 ( c l : t y p e c a s e ,
0053720 v a l u e , @ c l a u s e s
0053740 ( t ( c h e c k - t y p e - f
0053760 a i l n i l ' , k e y f o r
0054000 m , v a l u e \r
0054020
*
0054100 ' , c a s e - s e l
0054120 e c t o r s n i l ) ) ) ) ) )
0054140 ) \r \r ( d e f m a c r o 006 002 c
0054160 l : c t y p e c a s e 006 001 ( k
0054200 e y p l a c e & b o d y c l
0054220 a u s e s ) \r ( l e t (
0054240 ( c a s e - s e l e c t o r s
0054260 ( c o n s ' o r ( c o l l e
0054300 c t - c a s e - s e l e c t o r
0054320 s c l a u s e s ' c l : c t
0054340 y p e c a s e ) ) ) ) \r
0054360 ( w i t h - e r r - l o
0054400 o p - v a r s \r
0054420 " C T Y P E C A S E " \r
0054440 ` ( c l : b l o c k
0054460 , b l o c k - n a m e ( c l
0054500 : t a g b o d y \r
0054520
0054540 , a g a i n
0054560 \r
0054600
0054620 ( l e t ( ( , v a l , k
0054640 e y p l a c e ) ) \r
0054660
*
0054720 ( c l : r e t u r n - f r o m
0054740 , b l o c k - n a m e \r
0054760
*
0055020 ( c l : t y p
0055040 e c a s e , v a l , @ c l a
0055060 u s e s \r
0055100
*
0055140 ( t ( c l :
0055160 s e t f , k e y p l a c e (
0055200 c h e c k - t y p e - f a i l \r
0055220
*
0055320 t \r
0055340
*
0055440 ' , k e y p l a
0055460 c e \r
0055500
*
0055560 , v
0055600 a l \r
0055620
*
0055700 ' ,
0055720 c a s e - s e l e c t o r s n
0055740 i l ) ) \r
0055760
*
0056020 ( g o
0056040 , a g a i n ) ) ) ) ) ) ) ) ) )
0056060 \r \r ( d e f m a c r o 006 002 c l
0056100 : e c a s e 006 001 ( k e y f o r
0056120 m & r e s t c l a u s e s )
0056140 \r ( w i t h - g e n s y m
0056160 s ( v a l u e ) \r
0056200 " E C A S E " \r
0056220 ( l e t ( ( c a s
0056240 e - s e l e c t o r s ( c o l
0056260 l e c t - c a s e - s e l e c t
0056300 o r s c l a u s e s ' c l :
0056320 e c a s e ) ) ) \r
0056340 ( c l : i f c
0056360 a s e - s e l e c t o r s ` (
0056400 l e t ( ( , v a l u e , k e
0056420 y f o r m ) ) \r
0056440
*
0056500 ( c a s e , v a l u e
0056520 , @ c l a u s e s ( t ( e c
0056540 a s e - f a i l n i l \r
0056560
*
0056660 ' , k e y f o
0056700 r m \r
0056720
*
0057000 ,
0057020 v a l u e \r
0057040
*
0057140 ' , c a s e - s e l e c t o
0057160 r s ) ) ) ) \r
0057200 ( c l
0057220 : e r r o r " E m p t y c a
0057240 s e s t a t e m e n t . " ) )
0057260 ) ) ) \r \r ( d e f m a c r o 006
0057300 002 c l : c c a s e 006 001 ( k e y
0057320 f o r m & b o d y c l a u s
0057340 e s ) \r ( l e t ( ( c a
0057360 s e - s e l e c t o r s ( c o
0057400 l l e c t - c a s e - s e l e c
0057420 t o r s c l a u s e s ' c l
0057440 : c c a s e ) ) ) \r
0057460 ( c l : u n l e s s c a s
0057500 e - s e l e c t o r s ( c l :
0057520 e r r o r " E m p t y C C A
0057540 S E . " ) ) \r (
0057560 w i t h - e r r - l o o p - v a
0057600 r s \r " C C A
0057620 S E " \r ` ( c
0057640 l : b l o c k , b l o c k - n
0057660 a m e ( c l : t a g b o d y \r
0057700
*
0057740 , a g a i n \r
0057760
0060000 ( l e t ( (
0060020 , v a l , k e y f o r m ) ) \r
0060040
*
0060100 ( c l : r e t u r n
0060120 - f r o m , b l o c k - n a m
0060140 e \r
0060160
0060200 (
0060220 c a s e , v a l , @ c l a u
0060240 s e s \r
0060260
*
0060320 ( t ( c l : s e
0060340 t f , k e y f o r m ( e c a
0060360 s e - f a i l \r
0060400
*
0060500 t \r
0060520
*
0060600 ' , k e
0060620 y f o r m \r
0060640
*
0060720 ,
0060740 v a l \r
0060760
*
0061040 ' , c
0061060 a s e - s e l e c t o r s ) ) \r
0061100
*
0061160 ( g o , a g a i n
0061200 ) ) ) ) ) ) ) ) ) ) \r \r ( d e f
0061220 m a c r o 006 002 c l : a s s e r
0061240 t 006 001 ( t e s t - f o r m &
0061260 o p t i o n a l p l a c e s
0061300 s t r i n g & r e s t a r g
0061320 s ) \r ( c l : u n l e s s
0061340 ( c l : l i s t p p l a c e
0061360 s ) \r ( c l
0061400 : e r r o r " ~ S s h o u l
0061420 d b e a l i s t o f p
0061440 l a c e s . " p l a c e s ) )
0061460 \r ( w i t h - e r r - l o
0061500 o p - v a r s " A S S E R T "
0061520 ` ( c l : b l o c k , b l o
0061540 c k - n a m e ( c l : t a g b
0061560 o d y , a g a i n ( c l : w
0061600 h e n \r
0061620
*
0061700 ,
0061720 t e s t - f o r m \r
0061740
*
0062040 ( c l : r e t u r n -
0062060 f r o m \r
0062100
*
0062200 , b l o c k - n a m e \r
0062220
*
0062320 ( c l : v a l
0062340 u e s ) ) ) \r
0062360
*
0062440 ( a s s e r t - f a i
0062460 l , s t r i n g , @ a r g s
0062500 ) \r
0062520
*
0062600 ( g o , a g a i n ) ) ) ) ) \r
0062620 \r ( d e f m a c r o 006 002 h a n
0062640 d l e r - b i n d 006 001 ( b i n
0062660 d i n g s & r e s t f o r m
0062700 s ) " E v a l f o r m s u
0062720 n d e r t e m p o r a r y n
0062740 e w c o n d i t i o n h a n
0062760 d l e r s . " \r ` ( l e t
0063000 ( ( * c o n d i t i o n - h a
0063020 n d l e r - b i n d i n g s *
0063040 ( l i s t * , @ ( e x t r a c
0063060 t - c o n d i t i o n - b i n d
0063100 i n g s ( \r
0063120
*
0063220 n o r m a l i z e - c o n d i
0063240 t i o n - c l a u s e s \r
0063260
*
0063360 b i n d i
0063400 n g s ) ) \r
0063420
*
0063460 * c o n d i t i o n
0063500 - h a n d l e r - b i n d i n g
0063520 s * ) ) ) \r ,
0063540 @ f o r m s ) ) \r \r ( d e f m a
0063560 c r o 006 002 c o n d i t i o n -
0063600 b i n d 006 001 ( b i n d i n g s
0063620 & r e s t f o r m s ) \r
0063640
0063660 " E v a l f o r
0063700 m s u n d e r t e m p o r a
0063720 r y n e w c o n d i t i o n
0063740 h a n d l e r s ; s y n o n
0063760 y m f o r H A N D L E R - B
0064000 I N D " \r ` ( h a n d l e
0064020 r - b i n d , b i n d i n g s
0064040 , @ f o r m s ) ) \r \r ( d e f
0064060 m a c r o 006 002 c o n d i t i o
0064100 n - c a s e 006 001 ( f o r m &
0064120 r e s t b i n d i n g s ) \r
0064140
0064160 " E v a l
0064200 f o r m u n d e r c o n d
0064220 i t i o n h a n d l e r s t
0064240 h a t p r o v i d e a l t e
0064260 r n a t e c o n t i n u a t i
0064300 o n s . " \r ( w i t h - g
0064320 e n s y m s \r ( c o n d
0064340 i t i o n c l : v a l u e s
0064360 b n a m e h a n d l e r ) \r
0064400 " C O N D I T I O N - C A
0064420 S E " \r ( l e t \r
0064440 ( ( c l a u s e s ( n o r
0064460 m a l i z e - c o n d i t i o n
0064500 - c l a u s e s b i n d i n g
0064520 s ) ) ) \r ( 006 002 | i f
0064540 | 006 001 ( n u l l c l a u s e
0064560 s ) \r 006 002 | t
0064600 h e n | 006 001 f o r m \r
0064620 006 002 | e l s e | 006 001 ` (
0064640 l e t * ( ( , c o n d i t i o
0064660 n n i l ) \r
0064700 ( , c
0064720 l : v a l u e s ( c o n d i t
0064740 i o n - b l o c k \r
0064760
0065000 , b n
0065020 a m e \r
0065040
0065060 ( l e t ( ( , h
0065100 a n d l e r ( f u n c t i o n
0065120 ( c l : l a m b d a ( c ) \r
0065140
*
0065240 ( c l : s e t f , c o
0065260 n d i t i o n c ) \r
0065300
*
0065360 (
0065400 c o n d i t i o n - r e t u r n
0065420 , b n a m e ) ) ) ) ) \r
0065440
*
0065500 ( h a n d l e r - b i
0065520 n d ( ( , ( c l : m a p c a r
0065540 ( f u n c t i o n c a r ) \r
0065560
*
0065660 c l a u s e s ) , h a n d l e
0065700 r ) ) \r
0065720
*
0065760 ( c l : m u l t i p l e -
0066000 v a l u e - l i s t , f o r m
0066020 ) ) ) ) ) ) \r
0066040 ( c l :
0066060 i f , c o n d i t i o n , (
0066100 006 002 | i f | 006 001 ( e q l ( l
0066120 e n g t h c l a u s e s ) \r
0066140
*
0066220 1 ) \r
0066240
*
0066300 006 002 | t h e n | 006 001 ( c a d
0066320 r ( c a r ( m a s s a g e -
0066340 c a t c h - c o n d i t i o n -
0066360 c l a u s e s \r
0066400
*
0066460 c l
0066500 a u s e s c o n d i t i o n )
0066520 ) ) \r
0066540
0066560 006 002 |
0066600 e l s e | 006 001 ` ( c o n d i t
0066620 i o n - t y p e c a s e , c o
0066640 n d i t i o n \r
0066660
*
0066740 , @ ( m a s s a g e - c a t c
0066760 h - c o n d i t i o n - c l a u
0067000 s e s c l a u s e s \r
0067020
*
0067100 c
0067120 o n d i t i o n ) \r
0067140
*
0067220 ( t ( c l : e r r o r
0067240 \r
0067260
*
0067320 " B u g i n c o n d i
0067340 t i o n - c a s e ! ~ & U n e x
0067360 p e c t e d c o n d i t i o n
0067400 : ~ S . " \r
0067420
*
0067500 , c o n d i
0067520 t i o n ) ) ) ) ( c l : v a l
0067540 u e s - l i s t \r
0067560
*
0067660 , c l :
0067700 v a l u e s ) ) ) ) ) ) ) \r \r (
0067720 d e f m a c r o 006 002 r e a l -
0067740 c o n d i t i o n - c a s e 006 001
0067760 ( f o r m & r e s t c a s
0070000 e s ) \r
0070020
0070040 " E v a l f o r m u n d e r
0070060 c o n d i t i o n h a n d l
0070100 e r s t h a t p r o v i d e
0070120 a l t e r n a t e c o n t i
0070140 n u a t i o n s . " \r ( w
0070160 i t h - g e n s y m s \r
0070200 ( o u t e r i n n e r c o n
0070220 d i t i o n d u m m y ) \r
0070240 " C O N D I T I O N - C A S
0070260 E " \r ` ( c l : b l o c
0070300 k \r , o u t e r \r
0070320 ( c l : m u l t i p l
0070340 e - v a l u e - c a l l \r
0070360 ' c l : f u n c a l l \r
0070400 ( c l : b l o c k
0070420 \r , i n n e r \r
0070440 ( h a n d l e r
0070460 - b i n d \r ,
0070500 ( 006 002 f o r 006 001 c a s e 006 002
0070520 i n 006 001 c a s e s \r
0070540 006 002 c o l l e c
0070560 t 006 001 \r
0070600 ( d e s t r u c t u r i n g -
0070620 b i n d \r
0070640 ( t y p e s b v l .
0070660 b o d y ) \r
0070700 c a s e \r
0070720 ` ( , t y p e s \r
0070740
0070760 ( f u n c t i o n ( c l : l a
0071000 m b d a \r
0071020
0071040 ( , c o n d i t i o n ) \r
0071060
0071100 ( c l : r e t u
0071120 r n - f r o m \r
0071140
0071160 , i n n e r \r
0071200
0071220 ( c l : v a l u e
0071240 s \r
0071260 (
0071300 f u n c t i o n ( c l : l a m
0071320 b d a \r
0071340
0071360 , @ ( c
0071400 l : i f b v l ( l i s t b
0071420 v l ) \r
0071440
*
0071500 ` ( ( , d u m m y ) \r
0071520
*
0071600 ( 006 002 d e c l a r e 006 001
0071620 ( i g n o r e , d u m m y ) )
0071640 ) ) \r
0071660
0071700 , @ b o d
0071720 y ) ) \r
0071740
0071760 , c o n d i t i o n ) ) ) ) )
0072000 ) ) \r ( c l :
0072020 r e t u r n - f r o m , o u t
0072040 e r , f o r m ) ) ) ) ) ) ) \r
0072060 \r ( d e f m a c r o 006 002 i g n
0072100 o r e - e r r o r s 006 001 ( & b
0072120 o d y f o r m s ) " E v a l
0072140 f o r m s w i t h h a n d
0072160 l e r f o r a n y c o n d
0072200 i t i o n o f t y p e E R
0072220 R O R . " \r ` ( c o n d i
0072240 t i o n - c a s e ( p r o g n
0072260 , @ f o r m s ) \r
0072300 ( e r r o r ( c o n
0072320 d i t i o n ) \r
0072340 n i l ) ) )
0072360 \r \r ( d e f m a c r o 006 002 p r
0072400 o c e e d - c a s e 006 001 ( f o
0072420 r m & r e s t c l a u s e s
0072440 ) \r
0072460
0072500 " E
0072520 v a l f o r m s , e s t a b
0072540 l i s h i n g a p l a c e
0072560 t o p r o c e e d f r o m
0072600 e r r o r s . " \r ( w i t
0072620 h - g e n s y m s \r ( s
0072640 e l e c t o r c l : v a l u e
0072660 s t a g ) \r " P R O C
0072700 E E D - C A S E " \r ( c
0072720 l : m u l t i p l e - v a l u e
0072740 - b i n d \r ( c a s e
0072760 s b o d i e s ) \r (
0073000 s p l i t - p r o c e e d - c l
0073020 a u s e s c l a u s e s t a
0073040 g ) \r ( 006 002 | i f | 006
0073060 001 ( n u l l c a s e s ) \r
0073100 006 002 | t h e n |
0073120 006 001 f o r m \r 006
0073140 002 | e l s e | 006 001 ` ( d e s t
0073160 r u c t u r i n g - b i n d (
0073200 , s e l e c t o r \ \ \ , c
0073220 l : v a l u e s ) \r
0073240
0073260 ( l e t ( ( , t a g ( l i s
0073300 t n i l ) ) ) \r
0073320
0073340 ( c l : c a t c h , t
0073360 a g ( c o n s : n o r m a l
0073400 ( l e t ( ( * p r o c e e d
0073420 - c a s e s * ( l i s t * ,
0073440 @ c a s e s \r
0073460
*
0073560 * p
0073600 r o c e e d - c a s e s * \r
0073620
*
0073740 ) ) ) \r
0073760
*
0074040 ( c l : m u l t i p l
0074060 e - v a l u e - l i s t , f o
0074100 r m ) ) ) ) ) \r
0074120 ( c
0074140 l : i f ( e q , s e l e c t
0074160 o r : n o r m a l ) \r
0074200
0074220 ( c l : v a l
0074240 u e s - l i s t , c l : v a l
0074260 u e s ) \r
0074300
0074320 ( c l : a p p l y , ( 006 002
0074340 | i f | 006 001 ( e q l ( l e n
0074360 g t h b o d i e s ) \r
0074400
*
0074440 1
0074460 ) \r
0074500
0074520 006 002
0074540 | t h e n | 006 001 ( c a d r (
0074560 c a r b o d i e s ) ) \r
0074600
*
0074640 006 002 | e l s e | 006
0074660 001 ` ( c a s e , s e l e c t
0074700 o r , @ b o d i e s ) ) , c
0074720 l : v a l u e s ) ) ) ) ) ) ) \r
0074740 \r ( d e f m a c r o 006 002 r e a
0074760 l - p r o c e e d - c a s e 006 001
0075000 ( f o r m & r e s t c l a
0075020 u s e s ) \r
0075040
*
0075100 " E v a l f o r m s , e
0075120 s t a b l i s h i n g a p l
0075140 a c e t o p r o c e e d f
0075160 r o m e r r o r s . " \r
0075200 ( w i t h - g e n s y m s ( o
0075220 u t e r t a g d u m m y ) \r
0075240 " P R O C E
0075260 E D - C A S E " \r
0075300 ` ( c l : b l o c k , o
0075320 u t e r ( l e t * ( ( , t a
0075340 g ( l i s t n i l ) ) \r
0075360
*
0075420 ( * p r o c e e d - c a s e s
0075440 * ( l i s t * , @ ( m a p c
0075460 a r c l a u s e s \r
0075500
*
0075560 (
0075600 f u n c t i o n ( c l : l a m
0075620 b d a ( c l a u s e ) \r
0075640
*
0075760 ( \r
0076000
*
0076100 p r o c e e d - c a s e - f r
0076120 o m - c l a u s e \r
0076140
*
0076260 c l a u s e t a g \r
0076300
*
0076420 d u m m y ) ) ) ) \r
0076440
*
0076520 * p r o c e e d
0076540 - c a s e s * ) ) ) \r
0076560
0076600 ( c l
0076620 : m u l t i p l e - v a l u e -
0076640 c a l l ' c l : f u n c a l l
0076660 ( c l : c a t c h , t a g \r
0076700
*
0077000 ( c l
0077020 : r e t u r n - f r o m \r
0077040
*
0077140 , o u t e
0077160 r \r
0077200
*
0077300 , f o r m ) ) ) ) ) ) ) \r \r ( d
0077320 e f d e f i n e r 006 002 d e f i
0077340 n e - p r o c e e d - f u n c t
0077360 i o n 006 001 \r f u n c t i o
0077400 n s \r ( n a m e & r e s
0077420 t t a i l & a u x v a r s
0077440 ) \r ( c l : m u l t i p l
0077460 e - v a l u e - b i n d \r
0077500 ( t e s t r e p o r t a r
0077520 g l i s t ) \r ( p r o c
0077540 e s s - p r o c e e d - k e y w
0077560 o r d s n a m e t a i l ) \r
0077600 ( c l : s e t f v a r
0077620 s ( m a p c a r a r g l i s
0077640 t ( f u n c t i o n ( l a m
0077660 b d a ( x ) \r
0077700
*
0077740 ( c l : i f ( c l
0077760 : s y m b o l p x ) \r
0100000
*
0100060 x \r
0100100
*
0100140 ( c a r x ) )
0100160 ) ) ) ) \r ( c l : u n l
0100200 e s s t e s t ( c l : s e t
0100220 f t e s t ' t r u e ) ) \r
0100240 ( c l : u n l e s s r e
0100260 p o r t ( c l : s e t f r e
0100300 p o r t ' d e f a u l t - p r
0100320 o c e e d - r e p o r t e r ) )
0100340 \r ` ( p r o g n , @ (
0100360 c l : i f ( c l : c o n s p
0100400 t e s t ) \r
0100420 ( l e t
0100440 ( ( t e s t e r ( % s u f f i
0100460 x - s y m b o l n a m e " -
0100500 p r o c e e d - t e s t " ) ) )
0100520 \r
0100540 ( p r o g
0100560 1 ` ( ( c l : s e t f ( c l
0100600 : s y m b o l - f u n c t i o n
0100620 ' , t e s t e r ) \r
0100640
*
0100700 ( f u n c t i o n ,
0100720 t e s t ) ) ) ( s e t q t e
0100740 s t t e s t e r ) ) ) ) \r
0100760 ( c l : s e
0101000 t f ( d e f a u l t - p r o c
0101020 e e d - t e s t ' , n a m e )
0101040 \r
0101060 ' , t e s t ) \r
0101100 , @ ( c l : i f
0101120 ( c l : c o n s p r e p o r
0101140 t ) \r
0101160 ( l e t ( ( r
0101200 e p o r t e r ( % s u f f i x
0101220 - s y m b o l n a m e " - p
0101240 r o c e e d - r e p o r t e r "
0101260 ) ) ) \r
0101300 ( p
0101320 r o g 1 ` ( ( c l : s e t f
0101340 ( c l : s y m b o l - f u n c t
0101360 i o n ' , r e p o r t e r ) \r
0101400
*
0101440 ( f u n c t
0101460 i o n , r e p o r t ) ) ) (
0101500 s e t q r e p o r t r e p o
0101520 r t e r ) ) ) ) \r
0101540 ( c l : s e t f ( d
0101560 e f a u l t - p r o c e e d - r
0101600 e p o r t ' , n a m e ) \r
0101620
0101640 ' , r e p o r t ) \r
0101660 ( c l : s e t f
0101700 ( p r o c e e d - a r g - c o l
0101720 l e c t o r ' , n a m e ) \r
0101740
0101760 ( f u n c t i o n ( c l :
0102000 l a m b d a ( & o p t i o n a
0102020 l c o n d i t i o n , @ a r
0102040 g l i s t ) \r
0102060
0102100 ( l i s t
0102120 , @ v a r s ) ) ) ) \r
0102140 ( c l : d e f u
0102160 n ( 006 002 \ \ \ , 006 001 n a m e
0102200 ) ( & o p t i o n a l c o n
0102220 d i t i o n , @ a r g l i s t
0102240 ) ( c o n d i t i o n - c a s
0102260 e \r
0102300
*
0102360 ( i n v o k e - p r o
0102400 c e e d - c a s e \r
0102420
*
0102500 ' ,
0102520 n a m e c o n d i t i o n ,
0102540 @ v a r s ) \r
0102560
*
0102640 ( b a d - p
0102660 r o c e e d - c a s e n i l
0102700 n i l ) ) ) \r ) ) ) \r \r ( d e f
0102720 m a c r o 006 002 c a t c h - a b
0102740 o r t 006 001 ( p r i n t - f o r
0102760 m & b o d y f o r m s ) `
0103000 ( p r o c e e d - c a s e ( p
0103020 r o g n , @ f o r m s ) \r
0103040
*
0103120 ( a b o r t ( c o n
0103140 d i t i o n ) \r
0103160
*
0103240 : r e p o r t \r
0103260
*
0103340 , p r i
0103360 n t - f o r m : t e s t t r
0103400 u e ( c l : v a l u e s \r
0103420
*
0103540 n i l c o n d i t i o
0103560 n ) ) \r
0103600
*
0103640 ) ) \r \r \r
0103660 ( p u t p r o p s 006 002 c l - e
0103700 r r o r f i l e t y p e 006 001
0103720 c l : c o m p i l e - f i l e )
0103740 \r ( d e c l a r e \ : d o n t
0103760 e v a l @ l o a d d o e v a l
0104000 @ c o m p i l e d o n t c o p
0104020 y c o m p i l e r v a r s \r
0104040 \r ( a d d t o v a r 006 002 n l a
0104060 m a 006 001 ) \r \r ( a d d t o v a
0104100 r 006 002 n l a m l 006 001 ) \r \r (
0104120 a d d t o v a r 006 002 l a m a 006
0104140 001 ) \r ) \r ( p u t p r o p s
0104160 c l - e r r o r c o p y r i g
0104200 h t ( " X e r o x C o r p o
0104220 r a t i o n " 1 9 8 6 ) ) \r (
0104240 d e c l a r e \ : d o n t c o
0104260 p y \r ( f i l e m a p ( n
0104300 i l ) ) ) \r s t o p \r
0104313