$ od -c -N 50000 [eris]<LispCore>SOURCES>CL-ERROR!11
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 2 0 : 1 4 : 2 5 " 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 1 006 001 3 5 3 7 1 \r \r
0000220 | c h a n g e s |
0000240 | t o : | ( f u n c t i o n
0000260 s d e f i n e - c o n d i t i
0000300 o n n o r m a l i z e - s l o
0000320 t - d e s c r i p t i o n s s
0000340 p l i t - p r o c e e d - c l a
0000360 u s e s \r
0000400
0000420 p r o c e e d - c a s e
0000440 - f r o m - c l a u s e p r o
0000460 c e s s - p r o c e e d - k e y
0000500 w o r d s c h e c k - * c a s
0000520 e - s e l e c t o r \r
0000540
0000560 c o l l e c
0000600 t - c a s e - s e l e c t o r s
0000620 c l : c t y p e c a s e c l
0000640 : e c a s e ) \r
0000660 (
0000700 v a r s c l - e r r o r c o m
0000720 s ) \r \r | p r e v i
0000740 o u s | | d a t e : | " 2 4
0000760 - O c t - 8 6 1 9 : 1 1 : 2 7
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 . \ ; 1 0 ) \r \r \r ; C o p
0001060 y r i g h t ( c ) 1 9 8 6
0001100 b y X e r o x C o r p o r a
0001120 t i o n . A l l r i g h t
0001140 s r e s e r v e d . \r \r ( p r
0001160 e t t y c o m p r i n t c l -
0001200 e r r o r c o m s ) \r \r ( r p a
0001220 q q 006 002 c l - e r r o r c o m
0001240 s 006 001 \r ( ( c o
0001260 m s ( * | ; ; | \r
0001300 " T e m p
0001320 o r a r y b o o t s t r a p p
0001340 i n g s t u f f . A n y t h
0001360 i 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
0001520 n 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
0001600 n ) ) \r ( c o m
0001620 s ( * | ; ; | " I n t e r
0001640 n a l s t u f f . " ) \r
0001660 ( e x p o
0001700 r t ( v a r i a b l e s % c
0001720 o n d i t i o n - t y p e s - r
0001740 e a l ) ) \r
0001760 ( f u n c t i o n s d
0002000 e f a u l t - p r o c e e d - r
0002020 e p o r t ) \r
0002040 ( f u n c t i o n s
0002060 w i t h - g e n s y m s w i t
0002100 h - e r r - l o o p - v a r s
0002120 s t r i p - k e y w o r d s m
0002140 a k e - f a k e - r e p o r t -
0002160 f u n c t i o n \r
0002200 m
0002220 a k e - r e p o r t - f u n c t
0002240 i o n m a k e - e n c a p s u
0002260 l 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
0002320 n 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
0002400 n g s n o r m a l i z e - c o
0002420 n d i t i o n - c l a u s e s
0002440 \r
0002460 m a s s a g e - c a
0002500 t c h - c o n d i t i o n - c l
0002520 a u s e s s p l i t - p r o c
0002540 e e d - c l a u s e s p r o c
0002560 e e d - c a s e - f r o m - c l
0002600 a u s e \r
0002620 p r o c e
0002640 s s - p r o c e e d - k e y w o
0002660 r d s c h e c k - * c a s e -
0002700 s 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
0002740 \r
0002760 n o - p r o c e e d
0003000 - t e s t % p r e f i x - s y
0003020 m b o l % s u f f i x - s y m
0003040 b o l p r o c e e d - a r g -
0003060 c o l l e c t o r ) ) \r
0003100 ( c o m s ( * | ; ;
0003120 | \r " U
0003140 s e r - v i s i b l e f o r m
0003160 s . T h e s e s h o u l d
0003200 a l l b e e x t e r n a l
0003220 s y m b o l s . A n y o t h
0003240 e r s s h o u l d b e i n
0003260 t e r n a l . " \r
0003300 ) \r
0003320 ( f u n c t
0003340 i o n s d e f i n e - c o n d
0003360 i t i o n c l : c h e c k - t
0003400 y 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
0003460 \r
0003500 c l : a s s e r t
0003520 h a n d l e r - b i n d c o n
0003540 d i t i o n - b i n d c o n d
0003560 i t i o n - c a s e r e a l -
0003600 c 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
0003660 r s p r o c e e d - c a s e
0003700 r e a l - p r o c e e d - c a s
0003720 e 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 -
0003760 a b o r t \r
0004000 ) ) \r
0004020 ( p r o p f i l e
0004040 t 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
0004120 d o e v a l @ c o m p i l e d
0004140 o n t c o p y c o m p i l e r
0004160 v a r s ( a d d v a r s ( n
0004200 l 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
0004520 t r a p p i n g s t u f f .
0004540 A 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
0004600 c e C L s t a r t s w o r
0004620 k i n g . " ) 006 001 \r \r ( d e f m
0004640 a 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
0004700 e c t & r e s t c l a u s e
0004720 s ) \r ( l e t \r (
0004740 ( v a l ( c l : g e n s y m )
0004760 ) ) \r ( c l : i f % c
0005000 o n d i t i o n - t y p e s - r
0005020 e a l ` ( c l : t y p e c a s
0005040 e , o b j e c t , @ c l a u
0005060 s e s ) \r
0005100 ` ( l e t ( ( , v a l , o b
0005120 j e c t ) ) \r
0005140 ( c o n d \r
0005160
0005200 , @ ( c l : m a p c a r (
0005220 f u n c t i o n ( c l : l a m
0005240 b d a \r
0005260
*
0005320 ( c l a u s e ) \r
0005340
*
0005400 ( d e s t r u c t u r
0005420 i 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
0006120 p , v a l ' , s e l e c t o
0006140 r ) \r
0006160
*
0006220 , @ b o d y )
0006240 ) ) ) ) \r
0006260
0006300 c l a u s e s ) ) ) ) ) ) \r
0006320 \r ( d e f m a c r o 006 002 c o n
0006340 d i t i o n - b l o c k 006 001 (
0006360 t a g & b o d y f o r m s )
0006400 ` ( c l : c a t c h ' , t a
0006420 g , @ f o r m s ) ) \r \r ( d e
0006440 f m a c r o 006 002 c o n d i t i
0006460 o 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
0006520 t ) ` ( c l : t h r o w ' ,
0006540 t a g , r e s u l t ) ) \r \r \r
0006560 \r \r 006 004 ( * | ; ; | " I n t
0006600 e r n a l s t u f f . " ) 006 001
0006620 \r \r ( * F O L L O W I N G D
0006640 E F I N I T I O N S E X P O R
0006660 T E D ) \r \r \r ( c l : d e f c o
0006700 n s t a n t 006 002 % c o n d i t
0006720 i o n - t y p e s - r e a l 006 001
0006740 n i l ) \r \r \r \r ( * E N D
0006760 E X P O R T E D D E F I N I T
0007000 I 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
0007040 e d - r e p o r t 006 001 ( p r o
0007060 c 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
0007240 e f a u l t - p r o c e e d - r
0007260 e p o r t e r ) ) \r \r ( d e f m
0007300 a c r o 006 002 w i t h - g e n s
0007320 y m s 006 001 ( v a r s p r e f
0007340 i 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 )
0007440 \r
0007460
0007500 ` ( , v a r
0007520 ( g e n s y m , p r e f i x )
0007540 ) ) ) ) , @ b o d y ) ) \r \r (
0007560 d e f m a c r o 006 002 w i t h -
0007600 e 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
0007640 d y ) ` ( w i t h - g e n s y
0007660 m s ( v a l b l o c k - n a
0007700 m 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
0010120 l : d e f u n 006 002 s t r i p -
0010140 k e y w o r d s 006 001 ( a r g s
0010160 ) ( c l : v a l u e s ( 006 002
0010200 f o r 006 001 006 002 o l d 006 001 a r
0010220 g s 006 002 o n 006 001 a r g s 006
0010240 002 b y 006 001 c d d r \r
0010260
*
0010320 006 002 w h i l e
0010340 006 001 ( c l : k e y w o r d p
0010360 ( c l : f i r s t a r g s ) )
0010400 \r
0010420
0010440 006
0010460 002 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 )
0010520 \r
0010540
*
0010600 ( c l
0010620 : s e c o n d a r g s ) ) ) \r
0010640
*
0010700 a r g s ) ) \r \r (
0010720 c l : d e f u n 006 002 m a k e -
0010740 f a k e - r e p o r t - f u n c
0010760 t i o n 006 001 ( d a t u m b o
0011000 u n d - v a r & o p t i o n a
0011020 l e n c a p s u l a t i o n )
0011040 \r ( c l : e t y p e c a s
0011060 e d a t u m ( s t r i n g
0011100 ` ( l a m b d a ( d a t u m
0011120 s t r e a m ) \r
0011140
0011160 ( 006 002 d e c
0011200 l a r e 006 001 ( i g n o r e d
0011220 a t u m ) ) \r
0011240
0011260 ( c l : w r i
0011300 t 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
0011360 b 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
0011460 u l l e n c a p s u l a t i o
0011500 n ) \r
0011520 d a
0011540 t u m \r
0011560 `
0011600 ( l e t , e n c a p s u l a t
0011620 i o n , d a t u m ) ) ) ) ) )
0011640 \r \r ( c l : d e f u n 006 002 m a
0011660 k e - r e p o r t - f u n c t i
0011700 o n 006 001 ( d a t u m b o u n
0011720 d - v a r & o p t i o n a l
0011740 t y p e - n a m e ) \r ( c
0011760 l : e t y p e c a s e d a t u
0012000 m ( s t r i n g ` ( l a m b
0012020 d 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 ) )
0012140 \r
0012160
0012200 ( c l : w r i t e - s t r
0012220 i n g , d a t u m s t r e a
0012240 m ) ) ) \r (
0012260 l i s t ` ( l a m b d a ( ,
0012300 b o u n d - v a r * s t a n d
0012320 a r d - o u t p u t * ) \r
0012340
0012360 , ( c l : i f t y p e - n a m
0012400 e ` ( 006 002 w i t h 006 001 , t y
0012420 p e - n a m e , b o u n d - v
0012440 a 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
0012520 a t i o n 006 001 ( c o n d i t i
0012540 o n - t y p e s l o t - n a m
0012560 e s ) \r ( m a p c a r (
0012600 c l : r e m o v e ' - - d u m
0012620 m y - s l o t - - s l o t - n
0012640 a m e s ) \r
0012660 ( f u n c t i o n ( l a m b d
0012700 a ( s l o t ) \r
0012720 `
0012740 ( , s l o t ( , ( % s u f f i
0012760 x - s y m b o l c o n d i t i
0013000 o n - t y p e ( c l : c o n c
0013020 a t e n a t e ' s t r i n g
0013040 " - " \r
0013060
*
0013140 ( c l : s y
0013160 m b o l - n a m e s l o t ) )
0013200 ) \r
0013220
0013240 c o n d i t i o
0013260 n ) ) ) ) ) ) \r \r ( c l : d e f
0013300 u n 006 002 n o r m a l i z e - s
0013320 l o t - d e s c r i p t i o n s
0013340 006 001 ( s l o t s ) \r ( m
0013360 a p c a r s l o t s ( f u n
0013400 c 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
0013500 001 ( l i s t p s l o t ) \r
0013520
*
0013560 006 002 t h e n 006 001 ( 006
0013600 002 i f 006 001 ( e q u a l ( l e
0013620 n 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
0014020 e n d s l o t ' ( n i l :
0014040 r e a d o n l y t ) ) \r
0014060
*
0014120 006 002 e l s e
0014140 006 001 ` ( , ( c a r s l o t )
0014160 , ( c a d r s l o t ) : r
0014200 e a d - o n l y t \r
0014220
*
0014300 , @ ( c d d r s l o
0014320 t ) ) ) \r
0014340
0014360 006 002 e l s e 006
0014400 001 ` ( , s l o t n i l : r
0014420 e a d - o n l y t ) ) ) ) ) )
0014440 \r \r ( c l : d e f u n 006 002 e x
0014460 t r a c t - c o n d i t i o n -
0014500 b i n d i n g s 006 001 ( c l a u
0014520 s e s ) \r ( m a p c a r
0014540 c l a u s e s ( f u n c t i o
0014560 n ( c l : l a m b d a ( c l
0014600 a u s e ) \r
0014620
0014640 ` ( c o n s
0014660 ' , ( c l : f i r s t c l a
0014700 u s e ) , ( c l : s e c o n d
0014720 c l a u s e ) ) ) ) ) ) \r \r (
0014740 c l : d e f u n 006 002 n o r m a
0014760 l i z e - c o n d i t i o n - c
0015000 l a u s e s 006 001 ( c l a u s e
0015020 s ) \r ( m a p c o n c c
0015040 l 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
0015140 s e ) \r
0015160
0015200 ( l e t ( ( c o n d i t
0015220 i o n s ( c l : f i r s t c
0015240 l a u s e ) ) ) \r
0015260
0015300 ( c l
0015320 : t y p e c a s e \r
0015340
0015360 c
0015400 o n d i t i o n s \r
0015420
0015440 (
0015460 l i s t ( c l : i f ( e q
0015500 ( c l : f i r s t c o n d i t
0015520 i o n s ) \r
0015540
*
0015600 ' q u o
0015620 t e ) \r
0015640
*
0015700 ( c l : e r r o r
0015720 \r
0015740
*
0016000 " B a d c
0016020 o 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
0016060 o t e d . " \r
0016100
*
0016160 c o n d i t i o n s ) \r
0016200
*
0016240 (
0016260 m a p c a r c o n d i t i o n
0016300 s \r
0016320
*
0016360 ( f u n c
0016400 t i o n ( c l : l a m b d a \r
0016420
*
0016520 ( c ) \r
0016540
*
0016620 ( c l :
0016640 i f ( c l : s y m b o l p c
0016660 ) \r
0016700
*
0016760 ( c o
0017000 n s c ( c d r c l a u s e
0017020 ) ) \r
0017040
*
0017120 ( c
0017140 l : 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
0017300 o 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
0017540 b o l ( l i s t c l a u s e
0017560 ) ) \r
0017600
0017620 ( t ( c l : e
0017640 r r o r \r
0017660
0017700 " B
0017720 a d c o n d i t i o n s p e
0017740 c ~ s . S h o u l d b e
0017760 s y m b o l o r l i s t o
0020000 f s y m b o l s . " \r
0020020
*
0020060 c o n d
0020100 i t i o n s ) ) ) ) ) ) ) ) \r \r
0020120 ( c l : d e f u n 006 002 m a s s
0020140 a g e - c a t c h - c o n d i t
0020160 i o n - c l a u s e s 006 001 ( c
0020200 l a u s e s i n i t - v a l u
0020220 e ) \r ( m a p c a r c l
0020240 a 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
0020420 i 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 (
0020620 c l : i f ( n u l l b v l )
0020640 \r
0020660
0020700 ( c o n s s e l
0020720 e c t o r f o r m s ) \r
0020740
*
0021000 ( l i s t s e l e c t o
0021020 r ` ( l e t ( , ( l i s t
0021040 ( c a r b v l ) \r
0021060
*
0021140 i n i
0021160 t - v a l u e ) , @ ( c d r
0021200 b v l ) ) \r
0021220
*
0021300 , @ f o r m s ) ) ) ) ) ) ) )
0021320 \r \r ( c l : d e f u n 006 002 s p
0021340 l i t - p r o c e e d - c l a u
0021360 s e s 006 001 ( c l a u s e s t
0021400 a 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
0021460 s e 006 002 i n 006 001 c l a u s e
0021500 s 006 002 a s 006 001 s e l e c t o
0021520 r 006 002 f r o m 006 001 0 \r
0021540 006 002 d o 006 001 ( d e s t
0021560 r u c t u r i n g - b i n d \r
0021600 ( n a m e
0021620 v a r s ) \r
0021640 c l a u s e \r
0021660 ( c l : m u l t i p l e -
0021700 v a l u e - b i n d \r
0021720 ( t e s t r e p
0021740 o r t t a i l ) \r
0021760 ( p r o c e s s - p
0022000 r o c e e d - k e y w o r d s
0022020 n a m e ( c d d r c l a u s
0022040 e ) ) \r
0022060 ( 006 002 i f 006 001 ( n u l l n a
0022100 m 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
0022240 s s r e p o r t ( c l : e r
0022260 r o r \r
0022300
*
0022340 " U n n a m e d p r o c
0022360 e e d c a s e s m u s t h
0022400 a v e a r e p o r t m e t
0022420 h o d : ~ S " \r
0022440
*
0022500 c l a u s e ) )
0022520 \r 006
0022540 002 e l s e 006 001 ( c l : u n l e
0022560 s 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
0022720 002 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
0023040 f o r p r o c e e d t y p e
0023060 ~ A : m a y b e u n d e
0023100 f i n e d . " \r
0023120
*
0023160 n a m e
0023200 ) ) ) \r
0023220 ( c l : u n l e s
0023240 s r e p o r t ( c l : s e t
0023260 f r e p o r t ` ( c l : l a
0023300 m b d a ( p c s t r e a m )
0023320 \r
0023340
*
0023400 ( c
0023420 l : f u n c a l l ( d e f a u
0023440 l t - p r o c e e d - r e p o r
0023460 t \r
0023500
*
0023560 ' , n a
0023600 m e ) \r
0023620
*
0023700 p c s t r e a
0023720 m ) ) ) ) ) \r
0023740 ( c l : p u s h ` ( m a
0023760 k e - p r o c e e d - c a s e
0024000 : n a m e ' , n a m e : t a
0024020 g , t a g : s e l e c t o r
0024040 , s e l e c t o r : t e s t
0024060 \r
0024100 , (
0024120 a n d t e s t ` ( f u n c t
0024140 i o n , t e s t ) ) : r e p
0024160 o r t ( f u n c t i o n , r
0024200 e p o r t ) ) c a s e s ) \r
0024220 ( c l : p
0024240 u s h ` ( , s e l e c t o r
0024260 ( f u n c t i o n ( c l : l a
0024300 m b d a , v a r s , @ t a i
0024320 l ) ) ) b o d i e s ) ) ) ) \r
0024340 ( c l : v a l u e s (
0024360 r e v e r s e c a s e s ) \r
0024400 ( r e v e r
0024420 s e b o d i e s ) ) ) ) \r \r (
0024440 c l : d e f u n 006 002 p r o c e
0024460 e d - c a s e - f r o m - c l a
0024500 u s e 006 001 ( c l a u s e t a
0024520 g d u m m y ) \r ( d e s
0024540 t 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
0024620 e \r ( c l : m u l t i p
0024640 l e - v a l u e - b i n d \r
0024660 ( t e s t r e p o r t
0024700 b o d y ) \r ( p r o c
0024720 e s s - p r o c e e d - k e y w
0024740 o r d s n a m e t a i l ) \r
0024760 ( 006 002 i f 006 001 ( n u
0025000 l l n a m e ) \r
0025020 006 002 t h e n 006 001 ( c l : u
0025040 n l e s s t e s t ( c l : s
0025060 e t f t e s t ' t r u e ) )
0025100 \r (
0025120 c 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
0025160 m e d p r o c e e d c a s e
0025200 s m u s t h a v e a r e
0025220 p 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
0025340 001 ( c l : u n l e s s t e s
0025360 t ( 006 002 i f 006 001 ( n o t (
0025400 g e t n a m e ' % d e f a u
0025420 l 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
0025520 a r n \r
0025540
*
0025600 " N o t e s t s p e c i f i
0025620 e d f o r p r o c e e d t
0025640 y p e ~ A : m a y b e u
0025660 n d e f i n e d . " \r
0025700
*
0025740 n a m e ) ) ) \r
0025760 ( c l :
0026000 u n l e s s r e p o r t ( c
0026020 l : s e t f r e p o r t ` (
0026040 c l : l a m b d a ( p c s t
0026060 r e a m ) \r
0026100
*
0026140 ( c l :
0026160 f 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
0026440 m ) ) ) ) ) \r ` ( m a
0026460 k e - r e a l - p r o c e e d -
0026500 c a s e : n a m e ' , n a m
0026520 e : t a g , t a g : c o n
0026540 t 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
0026620 t i o n a l , @ ( o r v a r
0026640 s ( l i s t d u m m y ) ) )
0026660 \r
0026700 ,
0026720 @ b o d y ) ) \r
0026740 : t e s t \r
0026760 , ( a n d t e
0027000 s t ` ( f u n c t i o n , t
0027020 e s t ) ) : r e p o r t ( f
0027040 u n c t i o n , r e p o r t )
0027060 ) ) ) ) \r \r ( c l : d e f u n
0027100 006 002 p r o c e s s - p r o c e e
0027120 d - k e y w o r d s 006 001 ( n a
0027140 m 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
0027220 l e - v a l u e - b i n d \r
0027240 ( k e y s t a i
0027260 l ) \r ( s t r
0027300 i p - k e y w o r d s a r g )
0027320 \r ( 006 002 | f o
0027340 r | 006 001 p a i r 006 002 | i n |
0027360 006 001 k e y s \r
0027400 006 002 | d o | 006 001 ( d e
0027420 s 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
0027560 s t ( c l : i f t e s t (
0027600 c l : e r r o r \r
0027620
*
0027660 " D u p l
0027700 i c a t e t e s t f o r m
0027720 s p e c i f i e d f o r p r
0027740 o c e e d t y p e ~ S . "
0027760 \r
0030000
*
0030040 n a m
0030060 e ) ) \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
0030260 o r \r
0030300
*
0030340 " D u p l i c a t e
0030360 t e s t f o r m s p e c i f
0030400 i e d f o r p r o c e e d
0030420 t y p e ~ S . " \r
0030440
*
0030520 n a m e ) ) \r
0030540
*
0030600 ( c l : s e t f t e s
0030620 t ` ( c l : l a m b d a ( c
0030640 ) \r
0030660
*
0030720 ( c o
0030740 n 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
0031040 r t - f u n c t i o n ( c l :
0031060 i f r e p o r t ( c l : e r
0031100 r o r \r
0031120
*
0031160 " D u p l i c a t e r
0031200 e p o r t f o r m s p e c i
0031220 f 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
0031460 u e ) ) \r
0031500
0031520 ( : r e p o r t ( c l :
0031540 i f r e p o r t ( c l : e r
0031560 r o r \r
0031600
*
0031640 " D u p l i c a t e r
0031660 e p o r t f o r m s p e c i
0031700 f 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
0032120 o 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 ) ) )
0032200 \r
0032220 (
0032240 c 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
0032300 k e y / v a l u e p a i r "
0032320 \r
0032340
*
0032400 " I l l e g a l k e y
0032420 w o r d ~ S i n p r o c e
0032440 e d c a s e ~ S . " k e y
0032460 n a m e ) \r
0032500
0032520 ) ) ) )
0032540 \r ( c l : v a
0032560 l u e s t e s t r e p o r t
0032600 t a i l ) ) ) ) \r \r ( c l : d
0032620 e f u n 006 002 c h e c k - * c a
0032640 s e - s e l e c t o r 006 001 ( s
0032660 e l e c t o r n a m e ) ( c
0032700 l : i f ( o r ( e q s e l
0032720 e 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 ) )
0033060 \r
0033100
*
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
*
0033320 s e l e c t o r n a m e ) \r
0033340
*
0033420 s e l e c t o r ) ) \r
0033440 \r ( c l : d e f u n 006 002 c o l
0033460 l e c t - c a s e - s e l e c t
0033500 o r s 006 001 ( c l a u s e s n
0033520 a m e ) \r ( m a p c o n c
0033540 c l a u s e s ( f u n c t i
0033560 o n ( c l : l a m b d a ( c
0033600 l a u s e ) \r
0033620
0033640 ( 006 002 i
0033660 f 006 001 ( a n d ( c l : c o n
0033700 s p ( c a r c l a u s e ) )
0033720 \r
0033740
0033760 (
0034000 f m e m b n a m e ' ( c l :
0034020 e c a s e c l : c c a s e ) )
0034040 ) \r
0034060
0034100 006 002 t h e
0034120 n 006 001 ( c l : c o p y - l i s
0034140 t ( 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
0034260 s 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 (
0034420 c l : d e f u n 006 002 n o - p r
0034440 o c e e d - t e s t 006 001 ( n a
0034460 m e & a u x o n c e ) \r
0034500 ( p r o c e e d - c a s e (
0034520 h a n d l e r - b i n d ( ( n
0034540 o - p r o c e e d - t e s t (
0034560 f u n c t i o n ( c l : l a m
0034600 b d a \r
0034620
*
0034700 ( c ) \r
0034720
*
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
0035040 m e c ) \r
0035060
*
0035140 n
0035160 a m e ) \r
0035200
*
0035260 ( c l : i f o
0035300 n 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 :
0035740 s e t f o n c e t ) ) ) ) )
0035760 ) ) \r
0036000 ( c l : e
0036020 r 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
0036100 l n i l : r e p o r t " U
0036120 s 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
0036160 n n o - p r o c e e d - t e s
0036200 t ( f u n c t i o n f a l s
0036220 e ) ) \r ( p
0036240 r o c e e d n i l : r e p o
0036260 r t " M a k e T R U E t h
0036300 e 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
0036340 o c e e d - t e s t \r
0036360 ( c l :
0036400 s e t f ( d e f a u l t - p r
0036420 o c e e d - t e s t n a m e )
0036440 \r
0036460 ( f u n c t i
0036500 o n t r u e ) ) ) ) ) \r \r ( c
0036520 l : d e f u n 006 002 % p r e f i
0036540 x - s y m b o l 006 001 ( p r e f
0036560 i x c l : s y m b o l ) ( c
0036600 l : i n t e r n ( c l : c o n
0036620 c 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
0036660 o l - n a m e \r
0036700
*
0037000 c
0037020 l : s y m b o l ) ) \r
0037040
*
0037100 ( c
0037120 l : s y m b o l - p a c k a g e
0037140 c l : s y m b o l ) ) ) \r \r (
0037160 c l : d e f u n 006 002 % s u f f
0037200 i x - s y m b o l 006 001 ( c l :
0037220 s y m b o l s u f f i x ) (
0037240 c l : i n t e r n ( c l : c o
0037260 n c a t e n a t e ' s t r i n
0037300 g ( c l : s y m b o l - n a m
0037320 e \r
0037340
*
0037440 c l : s y m b
0037460 o 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
0037700 c l : s y m b o l ) ) ) \r \r ( d
0037720 e f m a c r o 006 002 p r o c e e
0037740 d - a r g - c o l l e c t o r 006
0037760 001 ( n a m e ) " F u n c t i
0040000 o 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
0040040 o p t i o n a l a r g s ( e
0040060 x c l u d i n g t h e c o n
0040100 d i t i o n ) f o r a n a
0040120 m e d p r o c e e d c a s e
0040140 . " \r ` ( g e t , n a m
0040160 e ' % p r o c e e d - a r g -
0040200 c o l l e c t o r ) ) \r \r \r \r \r
0040220 006 004 ( * | ; ; | " U s e r -
0040240 v i s i b l e f o r m s . T
0040260 h e s e s h o u l d a l l
0040300 b e e x t e r n a l s y m b
0040320 o l s . A n y o t h e r s
0040340 s h o u l d b e i n t e r n
0040360 a l . " ) 006 001 \r \r ( d e f d e f
0040400 i n e r 006 002 d e f i n e - c o
0040420 n d i t i o n 006 001 \r s t r
0040440 u c t u r e s \r ( n a m e
0040460 p a r e n t - t y p e & r e
0040500 s t a r g s ) \r " D e f
0040520 i n e s a n e w c o n d i
0040540 t i o n t y p e " \r ( c
0040560 l : f l e t \r ( ( e x t
0040600 r a c t - s l o t - n a m e (
0040620 s l o t ) \r
0040640 ( 006 002 i f 006 001 ( c l : c o
0040660 n s p s l o t ) \r
0040700 006 002 t h e n
0040720 006 001 ( c a r s l o t ) \r
0040740 006 002 e l
0040760 s e 006 001 s l o t ) ) ) \r
0041000 ( l e t \r ( ( c l a
0041020 s s - o p t i o n s ` ( , @ (
0041040 c l : i f % c o n d i t i o n
0041060 - t y p e s - r e a l ' ( ( :
0041100 p r i n t - f u n c t i o n %
0041120 p r i n t - c o n d i t i o n )
0041140 ) \r
0041160
0041200 ' ( ( : t y p e l i s t )
0041220 \r
0041240
0041260 : n a m e d ) ) ( : c o
0041300 n s t r u c t o r , ( % p r e
0041320 f i x - s y m b o l " % M A K
0041340 E - " n a m e ) ) \r
0041360
0041400 ( : c o p i e r
0041420 n i l ) \r
0041440
0041460 ( : p r e d i c a t e n
0041500 i l ) ) ) \r r e p o
0041520 r t e r h a n d l e r e n c
0041540 a p s u l a t i o n ) \r
0041560 ( c l : m u l t i p l e - v a
0041600 l u e - b i n d \r (
0041620 k e y s s l o t - d e s c r i
0041640 p t i o n s ) \r ( s
0041660 t r i p - k e y w o r d s a r
0041700 g s ) \r ( c l : s e
0041720 t f s l o t - d e s c r i p t
0041740 i o n s ( n o r m a l i z e -
0041760 s l o t - d e s c r i p t i o n
0042000 s s l o t - d e s c r i p t i
0042020 o n s ) ) \r ( a n d
0042040 ( n e q p a r e n t - t y p
0042060 e n a m e ) \r
0042100 ( l e t * ( ( a l l - s
0042120 u p e r - s l o t s ( s l o t
0042140 - l i s t p a r e n t - t y p
0042160 e ) ) \r
0042200 ( r e d e f i n e d
0042220 - s l o t s ( 006 002 f o r 006 001
0042240 s l o t 006 002 i n 006 001 s l o t
0042260 - d e s c r i p t i o n s 006 002
0042300 w h e n 006 001 ( c l : m e m b e
0042320 r ( c a r s l o t ) \r
0042340
*
0042440 a l l - s
0042460 u p e r - s l o t s ) \r
0042500
*
0042540 006 002 c o l l e c t 006 001 s l
0042560 o t ) ) ) \r
0042600 ( c l : p u s h
0042620 ( l i s t * : i n c l u d e
0042640 p a r e n t - t y p e r e d e
0042660 f i n e d - s l o t s ) \r
0042700
0042720 c l a s s - o p t i o
0042740 n s ) \r
0042760 ( c l : s e t f s l
0043000 o t - d e s c r i p t i o n s
0043020 ( 006 002 f o r 006 001 s l o t 006 002
0043040 i n 006 001 s l o t - d e s c r i
0043060 p t i o n s \r
0043100
*
0043140 006 002 u n l e s s 006 001
0043160 ( c l : m e m b e r s l o t
0043200 r e d e f i n e d - s l o t s
0043220 ) 006 002 c o l l e c t 006 001 s l
0043240 o t ) ) \r
0043260 ) ) \r (
0043300 c l : u n l e s s ( a n d n
0043320 i l % c o n d i t i o n - t y
0043340 p e s - r e a l ) \r
0043360 ( c l : s e t f
0043400 e n c a p s u l a t i o n ( m
0043420 a k e - e n c a p s u l a t i o
0043440 n n a m e ( a p p e n d (
0043460 m a p c a r ( s l o t - l i s
0043500 t p a r e n t - t y p e ) \r
0043520
*
0043620 ( f u n c
0043640 t i o n \r
0043660
*
0043760 e x t r a c t - s l o t -
0044000 n a m e ) ) \r
0044020
*
0044100 ( m a p c
0044120 a r s l o t - d e s c r i p t
0044140 i o n s \r
0044160
*
0044260 ( f u n c t i o n \r
0044300
*
0044400 e x t r a c t - s
0044420 l o t - n a m e ) ) ) ) ) ) \r
0044440 ( 006 002 f o r 006 001 p a
0044460 i r 006 002 i n 006 001 k e y s \r
0044500 006 002 d o 006 001 \r
0044520 ( d e s t r u c
0044540 t u r i n g - b i n d \r
0044560 ( k e y v a l u e
0044600 ) \r p a i r
0044620 \r ( c a s e
0044640 k e y ( : c o n c - n a m e
0044660 ( c l : p u s h p a i r c
0044700 l a s s - o p t i o n s ) ) \r
0044720 (
0044740 : r e p o r t - f u n c t i o n
0044760 ( 006 002 i f 006 001 r e p o r t e
0045000 r \r
0045020
0045040 006 002 t h e n 006 001
0045060 ( c l : e r r o r " R e p o
0045100 r t f u n c t i o n a l r e
0045120 a d y s p e c i f i e d f o
0045140 r ~ S . " n a m e \r
0045160
*
0045220 ) \r
0045240
*
0045300 006 002 e l s e 006 001 ( c l
0045320 : s e t f r e p o r t e r v
0045340 a l u e ) ) ) \r
0045360 ( : r e p o r t
0045400 ( 006 002 i f 006 001 r e p o r t e
0045420 r \r
0045440 006
0045460 002 t h e n 006 001 ( c l : e r r o
0045500 r " R e p o r t f u n c t i
0045520 o n a l r e a d y s p e c i
0045540 f i e d f o r ~ S . " n a
0045560 m e ) \r
0045600 006
0045620 002 e l s e 006 001 ( c l : s e t f
0045640 r e p o r t e r ( c l : i f
0045660 ( a n d n i l % c o n d i
0045700 t i o n - t y p e s - r e a l )
0045720 \r
0045740
*
0046000 ( m a k e -
0046020 r e p o r t - f u n c t i o n
0046040 v a l u e ' c o n d i t i o n
0046060 n a m e ) \r
0046100
*
0046160 ( m a k e - f a k e - r e p o r
0046200 t - f u n c t i o n v a l u e
0046220 \r
0046240
*
0046320 ' c o n d i t i o n e n c a
0046340 p s u l a t i o n ) ) ) ) ) \r
0046360 (
0046400 : h a n d l e r - f u n c t i o
0046420 n ( 006 002 i f 006 001 h a n d l e
0046440 r \r
0046460
0046500 006 002 t h e n 006
0046520 001 ( c l : e r r o r " H a n
0046540 d l e r a l r e a d y s p e
0046560 c i f i e d f o r ~ S . "
0046600 n a m e ) \r
0046620
0046640 006 002 e l s
0046660 e 006 001 ( c l : s e t f h a n
0046700 d l e r v a l u e ) ) ) \r
0046720 ( :
0046740 h a n d l e ( 006 002 i f 006 001 h
0046760 a n d l e r \r
0047000
0047020 006 002 t h e n 006 001 ( c l
0047040 : e r r o r " H a n d l e r
0047060 a l r e a d y s p e c i f i e
0047100 d f o r ~ S . " n a m e )
0047120 \r
0047140 006 002 e l
0047160 s e 006 001 ( c l : s e t f h a
0047200 n d l e r ` ( l a m b d a (
0047220 c o n d i t i o n ) \r
0047240
*
0047300 ,
0047320 ( c l : i f ( n u l l e n c
0047340 a p s u l a t i o n ) \r
0047360
*
0047440 v a l u e \r
0047460
*
0047540 ` ( l e t
0047560 , e n c a p s u l a t i o n ,
0047600 v a l u e ) ) ) ) ) ) \r
0047620 ( c l :
0047640 o t h e r w i s e ( c l : c e
0047660 r r o r " S k i p k e y - v
0047700 a l u e p a i r " " I l l e
0047720 g a l k e y w o r d ~ S i
0047740 n ~ S . " k e y \r
0047760
*
0050020 ' d e f i n e - c o n d i t i o
0050040 n ) ) ) ) ) \r ` ( p
0050060 r o g n ( c l : 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 l : c t y p e c a s
0054760 e 006 001 ( k e y p l a c e & b
0055000 o d y c l a u s e s ) \r
0055020 ( l e t ( ( c a s e - s e l e
0055040 c t o r s ( c o n s ' o r
0055060 ( c o l l e c t - c a s e - s e
0055100 l e c t o r s c l a u s e s
0055120 ' c l : c t y p e c a s e ) ) )
0055140 ) \r ( w i t h -
0055160 e r r - l o o p - v a r s \r
0055200 " C T Y P E C A S
0055220 E " \r ` ( c l
0055240 : b l o c k , b l o c k - n a
0055260 m e ( c l : t a g b o d y \r
0055300
*
0055340 , a g a i n \r
0055360
0055400 ( l e t ( ( ,
0055420 v a l , k e y p l a c e ) ) \r
0055440
*
0055500 ( c l : r e t u r n
0055520 - f r o m , b l o c k - n a m
0055540 e \r
0055560
0055600 (
0055620 c l : t y p e c a s e , v a l
0055640 , @ c l a u s e s \r
0055660
*
0055720 (
0055740 t ( c l : s e t f , k e y p
0055760 l a c e ( c h e c k - t y p e
0056000 - f a i l \r
0056020
*
0056120 t \r
0056140
*
0056220 ' ,
0056240 k e y p l a c e \r
0056260
*
0056360 , v a l \r
0056400
*
0056500 ' , c a s e - s e l e c
0056520 t o r s n i l ) ) \r
0056540
*
0056620 ( g o , a g a i n ) ) ) )
0056640 ) ) ) ) ) ) \r \r ( d e f m a c r
0056660 o 006 002 c l : e c a s e 006 001 (
0056700 k e y f o r m & r e s t c l
0056720 a u s e s ) \r ( w i t h -
0056740 g e n s y m s ( v a l u e ) \r
0056760 " E C A S E
0057000 " \r ( l e t
0057020 ( ( c a s e - s e l e c t o r
0057040 s ( c o l l e c t - c a s e -
0057060 s e l e c t o r s c l a u s e
0057100 s ' c l : e c a s e ) ) ) \r
0057120 ( c
0057140 l : i f c a s e - s e l e c t
0057160 o r s ` ( l e t ( ( , v a l
0057200 u e , k e y f o r m ) ) \r
0057220
*
0057260 ( c a s e ,
0057300 v a l u e , @ c l a u s e s
0057320 ( t ( e c a s e - f a i l n
0057340 i l \r
0057360
*
0057440 '
0057460 , k e y f o r m \r
0057500
*
0057600 , v a l u e \r
0057620
*
0057720 ' , c a s e - s
0057740 e l e c t o r s ) ) ) ) \r
0057760
0060000 ( c l : e r r o r " E m
0060020 p t y c a s e s t a t e m e
0060040 n t . " ) ) ) ) ) \r \r ( d e f m
0060060 a c r o 006 002 c l : c c a s e 006
0060100 001 ( k e y f o r m & b o d y
0060120 c l a u s e s ) \r ( l e
0060140 t ( ( c a s e - s e l e c t o
0060160 r s ( c o l l e c t - c a s e
0060200 - s e l e c t o r s c l a u s
0060220 e s ' c l : c c a s e ) ) ) \r
0060240 ( c l : u n l e
0060260 s s c a s e - s e l e c t o r
0060300 s ( c l : e r r o r " E m p
0060320 t y C C A S E . " ) ) \r
0060340 ( w i t h - e r r - l
0060360 o o p - v a r s \r
0060400 " C C A S E " \r
0060420 ` ( c l : b l o c k , b
0060440 l o c k - n a m e ( c l : t a
0060460 g b o d y \r
0060500
0060520 , a g a i n \r
0060540
0060560 (
0060600 l e t ( ( , v a l , k e y f
0060620 o r m ) ) \r
0060640
0060660 ( c l :
0060700 r e t u r n - f r o m , b l o
0060720 c k - n a m e \r
0060740
*
0061000 ( c a s e , v a l
0061020 , @ c l a u s e s \r
0061040
*
0061100 ( t
0061120 ( c l : s e t f , k e y f o r
0061140 m ( e c a s e - f a i l \r
0061160
*
0061260 t \r
0061300
*
0061400 ' , k e y f o r m \r
0061420
*
0061520 , v a l \r
0061540
*
0061640 ' , c a s e - s e l e c t
0061660 o r s ) ) \r
0061700
*
0061740 ( g o
0061760 , a g a i n ) ) ) ) ) ) ) ) ) )
0062000 \r \r ( d e f m a c r o 006 002 c l
0062020 : a s s e r t 006 001 ( t e s t -
0062040 f o r m & o p t i o n a l p
0062060 l a c e s s t r i n g & r e
0062100 s t a r g s ) \r ( c l :
0062120 u n l e s s ( c l : l i s t p
0062140 p l a c e s ) \r
0062160 ( c l : e r r o r " ~ S
0062200 s h o u l d b e a l i s
0062220 t o f p l a c e s . " p l
0062240 a c e s ) ) \r ( w i t h -
0062260 e r r - l o o p - v a r s " A
0062300 S S E R T " ` ( c l : b l o c
0062320 k , b l o c k - n a m e ( c
0062340 l : t a g b o d y , a g a i n
0062360 ( c l : w h e n \r
0062400
*
0062500 , t e s t - f o r m \r
0062520
*
0062620 ( c l : r
0062640 e t u r n - f r o m \r
0062660
*
0062760 , b l o c k - n a
0063000 m e \r
0063020
*
0063100 (
0063120 c l : v a l u e s ) ) ) \r
0063140
*
0063220 ( a s s e
0063240 r t - f a i l , s t r i n g
0063260 , @ a r g s ) \r
0063300
*
0063360 ( g o , a g a i n
0063400 ) ) ) ) ) \r \r ( d e f m a c r o
0063420 006 002 h a n d l e r - b i n d 006
0063440 001 ( b i n d i n g s & r e s
0063460 t f o r m s ) " E v a l f
0063500 o r m s u n d e r t e m p o
0063520 r a r y n e w c o n d i t i
0063540 o n h a n d l e r s . " \r
0063560 ` ( l e t ( ( * c o n d i t
0063600 i o n - h a n d l e r - b i n d
0063620 i n g s * ( l i s t * , @ (
0063640 e x t r a c t - c o n d i t i o
0063660 n - b i n d i n g s ( \r
0063700
*
0064000 n o r m a l i z e
0064020 - c o n d i t i o n - c l a u s
0064040 e s \r
0064060
*
0064160 b i n d i n g s ) ) \r
0064200
*
0064240 * c o n
0064260 d i t i o n - h a n d l e r - b
0064300 i n d i n g s * ) ) ) \r
0064320 , @ f o r m s ) ) \r \r
0064340 ( d e f m a c r o 006 002 c o n d
0064360 i t i o n - b i n d 006 001 ( b i
0064400 n d i n g s & r e s t f o r
0064420 m s ) \r
0064440 " E v
0064460 a l f o r m s u n d e r t
0064500 e m p o r a r y n e w c o n
0064520 d i t i o n h a n d l e r s ;
0064540 s y n o n y m f o r H A N
0064560 D L E R - B I N D " \r ` (
0064600 h a n d l e r - b i n d , b i
0064620 n d i n g s , @ f o r m s ) )
0064640 \r \r ( d e f m a c r o 006 002 c o
0064660 n d i t i o n - c a s e 006 001 (
0064700 f o r m & r e s t b i n d i
0064720 n g s ) \r
0064740
0064760 " E v a l f o r m u n d e
0065000 r c o n d i t i o n h a n d
0065020 l e r s t h a t p r o v i d
0065040 e a l t e r n a t e c o n t
0065060 i n u a t i o n s . " \r (
0065100 w i t h - g e n s y m s \r
0065120 ( c o n d i t i o n c l : v
0065140 a l u e s b n a m e h a n d
0065160 l e r ) \r " C O N D I T
0065200 I O N - C A S E " \r ( l
0065220 e t \r ( ( c l a u s e
0065240 s ( n o r m a l i z e - c o n
0065260 d i t i o n - c l a u s e s b
0065300 i n d i n g s ) ) ) \r
0065320 ( 006 002 | i f | 006 001 ( n u l l
0065340 c l a u s e s ) \r
0065360 006 002 | t h e n | 006 001 f o r
0065400 m \r 006 002 | e l s e
0065420 | 006 001 ` ( l e t * ( ( , c o
0065440 n d i t i o n n i l ) \r
0065460
0065500 ( , c l : v a l u e s (
0065520 c o n d i t i o n - b l o c k \r
0065540
*
0065600 , b n a m e \r
0065620
0065640 ( l e
0065660 t ( ( , h a n d l e r ( f u
0065700 n c t i o n ( c l : l a m b d
0065720 a ( c ) \r
0065740
*
0066020 ( c l : s e
0066040 t f , c o n d i t i o n c )
0066060 \r
0066100
*
0066160 ( c o n d i t i o n -
0066200 r e t u r n , b n a m e ) ) )
0066220 ) ) \r
0066240
0066260 ( h a n d
0066300 l e r - b i n d ( ( , ( c l :
0066320 m a p c a r ( f u n c t i o n
0066340 c a r ) \r
0066360
*
0066440 c l a u s e s ) ,
0066460 h a n d l e r ) ) \r
0066500
*
0066540 ( c l : m u l
0066560 t i p l e - v a l u e - l i s t
0066600 , f o r m ) ) ) ) ) ) \r
0066620
0066640 ( c l : i f , c o n d i t
0066660 i o n , ( 006 002 | i f | 006 001 (
0066700 e q l ( l e n g t h c l a u
0066720 s e s ) \r
0066740
*
0067000 1 ) \r
0067020
*
0067060 006 002 | t h e n | 006
0067100 001 ( c a d r ( c a r ( m a
0067120 s s a g e - c a t c h - c o n d
0067140 i t i o n - c l a u s e s \r
0067160
*
0067260 c l a u s e s c o n d
0067300 i t i o n ) ) ) \r
0067320
*
0067360 006 002 | e l s e | 006 001 ` (
0067400 c o n d i t i o n - t y p e c a
0067420 s e , c o n d i t i o n \r
0067440
*
0067520 , @ ( m a s s a g
0067540 e - c a t c h - c o n d i t i o
0067560 n - c l a u s e s c l a u s e
0067600 s \r
0067620
*
0067700 c o n d i t i o n ) \r
0067720
*
0070000 ( t ( c l :
0070020 e r r o r \r
0070040
*
0070100 " B u g i n
0070120 c o n d i t i o n - c a s e !
0070140 ~ & U n e x p e c t e d c o n
0070160 d i t i o n : ~ S . " \r
0070200
*
0070300 , c o n d i t i o n ) ) ) ) (
0070320 c l : v a l u e s - l i s t \r
0070340
*
0070460 , c l : v a l u e s ) ) ) )
0070500 ) ) ) \r \r ( d e f m a c r o 006
0070520 002 r e a l - c o n d i t i o n -
0070540 c a s e 006 001 ( f o r m & r e
0070560 s t c a s e s ) \r
0070600
0070620 " E v a l f o r m
0070640 u n d e r c o n d i t i o n
0070660 h a n d l e r s t h a t p
0070700 r o v i d e a l t e r n a t e
0070720 c o n t i n u a t i o n s . "
0070740 \r ( w i t h - g e n s y m
0070760 s \r ( o u t e r i n n
0071000 e r c o n d i t i o n d u m
0071020 m y ) \r " C O N D I T I
0071040 O N - C A S E " \r ` ( c
0071060 l : b l o c k \r , o
0071100 u t e r \r ( c l : m
0071120 u l t i p l e - v a l u e - c a
0071140 l l \r ' c l : f u
0071160 n c a l l \r ( c l
0071200 : b l o c k \r ,
0071220 i n n e r \r ( h
0071240 a n d l e r - b i n d \r
0071260 , ( 006 002 f o r 006 001 c
0071300 a s e 006 002 i n 006 001 c a s e s
0071320 \r 006 002
0071340 c o l l e c t 006 001 \r
0071360 ( d e s t r u c t
0071400 u r i n g - b i n d \r
0071420 ( t y p e s
0071440 b v l . b o d y ) \r
0071460 c a s e \r
0071500 ` ( ,
0071520 t y p e s \r
0071540 ( f u n c t i o n
0071560 ( c l : l a m b d a \r
0071600
0071620 ( , c o n d i t i o
0071640 n ) \r
0071660 ( c
0071700 l : r e t u r n - f r o m \r
0071720
0071740 , i n n e r
0071760 \r
0072000 ( c l
0072020 : v a l u e s \r
0072040
0072060 ( f u n c t i o n (
0072100 c l : l a m b d a \r
0072120
*
0072160 , @ ( c l : i f b v l (
0072200 l i s t b v l ) \r
0072220
*
0072260 ` ( ( , d
0072300 u m m y ) \r
0072320
*
0072360 ( 006 002 d e c l
0072400 a r e 006 001 ( i g n o r e , d
0072420 u m m y ) ) ) ) \r
0072440
*
0072500 , @ b o d y ) ) \r
0072520
0072540 , c o n d i t i o
0072560 n ) ) ) ) ) ) ) \r
0072600 ( c l : r e t u r n - f r o
0072620 m , o u t e r , f o r m ) )
0072640 ) ) ) ) ) \r \r ( d e f m a c r o
0072660 006 002 i g n o r e - e r r o r s
0072700 006 001 ( & b o d y f o r m s )
0072720 " E v a l f o r m s w i t
0072740 h h a n d l e r f o r a n
0072760 y c o n d i t i o n o f t
0073000 y p e E R R O R . " \r `
0073020 ( c o n d i t i o n - c a s e
0073040 ( p r o g n , @ f o r m s ) \r
0073060 ( e r r o
0073100 r ( c o n d i t i o n ) \r
0073120
0073140 n i l ) ) ) \r \r ( d e f m a c r
0073160 o 006 002 p r o c e e d - c a s e
0073200 006 001 ( f o r m & r e s t c
0073220 l a u s e s ) \r
0073240
*
0073300 " E v a l f o r m s ,
0073320 e s t a b l i s h i n g a
0073340 p l a c e t o p r o c e e d
0073360 f r o m e r r o r s . " \r
0073400 ( w i t h - g e n s y m s \r
0073420 ( s e l e c t o r c l
0073440 : v a l u e s t a g ) \r
0073460 " P R O C E E D - C A S E " \r
0073500 ( c l : m u l t i p l e
0073520 - v a l u e - b i n d \r
0073540 ( c a s e s b o d i e s ) \r
0073560 ( s p l i t - p r o c
0073600 e e d - c l a u s e s c l a u
0073620 s e s t a g ) \r ( 006
0073640 002 | i f | 006 001 ( n u l l c a
0073660 s e s ) \r 006 002
0073700 | t h e n | 006 001 f o r m \r
0073720 006 002 | e l s e | 006 001
0073740 ` ( d e s t r u c t u r i n g -
0073760 b i n d ( , 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
0074060 g ( l i s t n i l ) ) ) \r
0074100
0074120 ( c l : c a
0074140 t c h , t a g ( c o n s :
0074160 n o r m a l ( l e t ( ( * p
0074200 r o c e e d - c a s e s * ( l
0074220 i s t * , @ c a s e s \r
0074240
*
0074360 * p r o c e e d - c a s
0074400 e s * \r
0074420
*
0074520 ) ) ) \r
0074540
*
0074620 ( c l : m
0074640 u l t i p l e - v a l u e - l i
0074660 s t , f o r m ) ) ) ) ) \r
0074700
0074720 ( c l : i f ( e q ,
0074740 s e l e c t o r : n o r m a l
0074760 ) \r
0075000 (
0075020 c l : v a l u e s - l i s t ,
0075040 c l : v a l u e s ) \r
0075060
0075100 ( c l : a p p l
0075120 y , ( 006 002 | i f | 006 001 ( e q
0075140 l ( l e n g t h b o d i e s
0075160 ) \r
0075200
*
0075240 1 ) \r
0075260
*
0075320 006 002 | t h e n | 006 001 (
0075340 c a d r ( c a r b o d i e s
0075360 ) ) \r
0075400
0075420 006 002 |
0075440 e l s e | 006 001 ` ( c a s e ,
0075460 s e l e c t o r , @ b o d i e
0075500 s ) ) , c l : v a l u e s ) )
0075520 ) ) ) ) ) \r \r ( d e f m a c r o
0075540 006 002 r e a l - p r o c e e d -
0075560 c a s e 006 001 ( f o r m & r e
0075600 s t c l a u s e s ) \r
0075620
*
0075660 " E v a l f o
0075700 r m s , e s t a b l i s h i n
0075720 g a p l a c e t o p r o
0075740 c e e d f r o m e r r o r s
0075760 . " \r ( w i t h - g e n s
0076000 y m s ( o u t e r t a g d
0076020 u m m y ) \r
0076040 " P R O C E E D - C A S E " \r
0076060 ` ( c l : b l
0076100 o c k , o u t e r ( l e t *
0076120 ( ( , t a g ( l i s t n i
0076140 l ) ) \r
0076160
0076200 ( * p r o c e e d
0076220 - c a s e s * ( l i s t * ,
0076240 @ ( m a p c a r c l a u s e s
0076260 \r
0076300
*
0076360 ( f u n c t i o n (
0076400 c l : l a m b d a ( c l a u s
0076420 e ) \r
0076440
*
0076540 ( \r
0076560
*
0076660 p r o c e e d - c
0076700 a s e - f r o m - c l a u s e \r
0076720
*
0077040 c l a u s e t a g
0077060 \r
0077100
*
0077200 d u m m y ) ) )
0077220 ) \r
0077240
*
0077300 * p
0077320 r o c e e d - c a s e s * ) ) )
0077340 \r
0077360
0077400 ( c l : m u l t i p l e -
0077420 v a l u e - c a l l ' c l : f
0077440 u n c a l l ( c l : c a t c h
0077460 , t a g \r
0077500
*
0077600 ( c l : r e t u r n - f r
0077620 o m \r
0077640
*
0077740 , o u t e r \r
0077760
*
0100060 , f o r m ) ) ) ) )
0100100 ) ) \r \r ( d e f d e f i n e r
0100120 006 002 d e f i n e - p r o c e e d
0100140 - f u n c t i o n 006 001 \r f
0100160 u n c t i o n s \r ( n a m
0100200 e & r e s t t a i l & a u
0100220 x v a r s ) \r ( c l : m
0100240 u l t i p l e - v a l u e - b i
0100260 n d \r ( t e s t r e p
0100300 o r t a r g l i s t ) \r
0100320 ( p r o c e s s - p r o c e e
0100340 d - k e y w o r d s n a m e
0100360 t a i l ) \r ( c l : s e
0100400 t f v a r s ( m a p c a r
0100420 a r g l i s t ( f u n c t i o
0100440 n ( l a m b d a ( x ) \r
0100460
*
0100520 ( c l :
0100540 i f ( c l : s y m b o l p x
0100560 ) \r
0100600
*
0100640 x \r
0100660
*
0100720 ( c
0100740 a r x ) ) ) ) ) ) \r (
0100760 c l : u n l e s s t e s t (
0101000 c l : s e t f t e s t ' t r
0101020 u e ) ) \r ( c l : u n l
0101040 e s s r e p o r t ( c l : s
0101060 e t f r e p o r t ' d e f a
0101100 u l t - p r o c e e d - r e p o
0101120 r t e r ) ) \r ` ( p r o
0101140 g n , @ ( c l : i f ( c l :
0101160 c o n s p t e s t ) \r
0101200
0101220 ( l e t ( ( t e s t e r (
0101240 % s u f f i x - s y m b o l n
0101260 a m e " - p r o c e e d - t e
0101300 s t " ) ) ) \r
0101320
0101340 ( p r o g 1 ` ( ( c l : s e
0101360 t f ( c l : s y m b o l - f u
0101400 n c t i o n ' , t e s t e r )
0101420 \r
0101440
0101460 ( f u n c
0101500 t i o n , t e s t ) ) ) ( s
0101520 e t q t e s t t e s t e r )
0101540 ) ) ) \r
0101560 ( c l : s e t f ( d e f a u l
0101600 t - p r o c e e d - t e s t '
0101620 , n a m e ) \r
0101640 ' , t e s t
0101660 ) \r , @
0101700 ( c l : i f ( c l : c o n s p
0101720 r e p o r t ) \r
0101740 ( l
0101760 e t ( ( r e p o r t e r ( %
0102000 s u f f i x - s y m b o l n a
0102020 m e " - p r o c e e d - r e p
0102040 o r t e r " ) ) ) \r
0102060
0102100 ( p r o g 1 ` ( ( c l
0102120 : s e t f ( c l : s y m b o l
0102140 - f u n c t i o n ' , r e p o
0102160 r t e r ) \r
0102200
*
0102240 ( f u n c t i o n , r e p o r
0102260 t ) ) ) ( s e t q r e p o r
0102300 t r e p o r t e r ) ) ) ) \r
0102320 ( c l : s
0102340 e t f ( d e f a u l t - p r o
0102360 c e e d - r e p o r t ' , n a
0102400 m e ) \r
0102420 ' , r e p o r t )
0102440 \r ( c l
0102460 : s e t f ( p r o c e e d - a
0102500 r g - c o l l e c t o r ' , n
0102520 a m e ) \r
0102540 ( f u n c t i o
0102560 n ( c l : l a m b d a ( & o
0102600 p t i o n a l c o n d i t i o
0102620 n , @ a r g l i s t ) \r
0102640
*
0102700 ( l i s t , @ v a r s ) ) )
0102720 ) \r ( c
0102740 l : d e f u n ( 006 002 \ \ \ , 006
0102760 001 n a m e ) ( & o p t i o n
0103000 a l c o n d i t i o n , @ a
0103020 r g l i s t ) ( c o n d i t i
0103040 o n - c a s e \r
0103060
*
0103140 ( i n v o
0103160 k e - p r o c e e d - c a s e \r
0103200
*
0103300 ' , n a m e c o n d i
0103320 t i o n , @ v a r s ) \r
0103340
*
0103440 ( b a d - p r o c e e d - c a s
0103460 e n i l n i l ) ) ) \r ) ) )
0103500 \r \r ( d e f m a c r o 006 002 c a
0103520 t c h - a b o r t 006 001 ( p r i
0103540 n t - f o r m & b o d y f o
0103560 r m s ) ` ( p r o c e e d - c
0103600 a s e ( p r o g n , @ f o r
0103620 m s ) \r
0103640
*
0103700 ( a b o r
0103720 t ( c o n d i t i o n ) \r
0103740
*
0104020 : r e p
0104040 o r t \r
0104060
*
0104140 , p r i n t - f o r m : t
0104160 e s t t r u e ( c l : v a l
0104200 u e s \r
0104220
*
0104320 n i l c o
0104340 n d i t i o n ) ) \r
0104360
*
0104440 ) ) \r \r \r ( p u t p r o p s
0104460 006 002 c l - e r r o r f i l e t
0104500 y p e 006 001 c l : c o m p i l e
0104520 - f i l e ) \r ( d e c l a r e \
0104540 : d o n t e v a l @ l o a d
0104560 d o e v a l @ c o m p i l e d
0104600 o n t c o p y c o m p i l e r
0104620 v a r s \r \r ( a d d t o v a r
0104640 006 002 n l a m a 006 001 ) \r \r ( a
0104660 d d t o v a r 006 002 n l a m l 006
0104700 001 ) \r \r ( a d d t o v a r 006
0104720 002 l a m a 006 001 ) \r ) \r ( p u t
0104740 p r o p s c l - e r r o r c
0104760 o p y r i g h t ( " X e r o x
0105000 C o r p o r a t i o n " 1 9
0105020 8 6 ) ) \r ( d e c l a r e \ :
0105040 d o n t c o p y \r ( f i l e
0105060 m a p ( n i l ) ) ) \r s t o p
0105100 \r
0105101