$ od -c -N 50000 [eris]<LispCore>CML>DOC>KMP-ERRORPROPOSAL.tedit!4
0000000 E r r o r S y s t e m P r o
0000020 p o s a l # 5 b y K e n t
0000040 M . P i t m a n ( K M P @
0000060 S y m b o l i c s ) , 1 5 - M
0000100 a r - 8 6 . \r T h i s d r a f
0000120 t i n c o r p o r a t e s n
0000140 u m e r o u s s u g g e s t i
0000160 o n s m a d e b y D a v i
0000200 d A . M o o n ( M o o n @
0000220 S y m b o l i c s ) a n d R
0000240 i c h a r d M l y n a r i k
0000260 ( M L Y @ M I T - M C ) . N o
0000300 t a l l o f t h e i r s
0000320 u g g e s t i o n s m a d e
0000340 i t i n t o t h i s p r o
0000360 p o s a l h o w e v e r , e
0000400 i t h e r b e c a u s e o f
0000420 s o m e t e c h n i c a l
0000440 d i s a g r e e m e n t o r
0000460 l i m i t a t i o n s o f t
0000500 i m e , s o i t s h o u l
0000520 d n ' t b e s e e n a s
0000540 c o n t r a d i c t o r y i f
0000560 t h e y c r i t i c i z e
0000600 a s p e c t s o f t h e p
0000620 r o p o s a l . \r T e r m i n o
0000640 l o g y \r A c o n d i t i o n
0000660 i s a k i n d o f o b
0000700 j e c t w h i c h i s c r
0000720 e a t e d w h e n a n e x
0000740 c e p t i o n a l s i t u a t
0000760 i o n a r i s e s i n o r
0001000 d e r t o r e p r e s e n t
0001020 t h e r e l e v a n t f e
0001040 a t u r e s o f t h a t s
0001060 i t u a t i o n . \r O n c e a
0001100 c o n d i t i o n i s c r
0001120 e a t e d , i t i s c o m
0001140 m o n t o s i g n a l i t
0001160 . W h e n a c o n d i t i
0001200 o n i s s i g n a l l e d ,
0001220 a s e t o f h a n d l e
0001240 r s a r e t r i e d i n
0001260 s o m e p r e - d e f i n e d
0001300 o r d e r u n t i l o n e
0001320 d e c i d e s t o h a n d
0001340 l e t h e c o n d i t i o n
0001360 o r u n t i l n o m o r
0001400 e h a n d l e r s a r e f
0001420 o u n d . A c o n d i t i o
0001440 n i s s a i d t o h a v
0001460 e b e e n h a n d l e d i
0001500 f a h a n d l e r p e r f
0001520 o r m s a n o n - l o c a l
0001540 t r a n s f e r o f c o n
0001560 t r o l t o e x i t t h e
0001600 s i g n a l l i n g p r o c
0001620 e s s . \r A l t h o u g h s u
0001640 c h t r a n s f e r s o f
0001660 c o n t r o l m a y b e d
0001700 o n e d i r e c t l y u s i
0001720 n g t r a d i t i o n a l L
0001740 i s p m e c h a n i s m s s
0001760 u c h a s c a t c h a n d
0002000 t h r o w , b l o c k a n
0002020 d r e t u r n , o r t a
0002040 g b o d y a n d g o , t h
0002060 e c o n d i t i o n s y s t
0002100 e m a l s o p r o v i d e s
0002120 a m o r e s t r u c t u r
0002140 e d w a y t o p r o c e e
0002160 d f r o m a c o n d i t i
0002200 o n . A m o n g o t h e r
0002220 t h i n g s , t h e u s e
0002240 o f t h e s e s t r u c t u
0002260 r e d p r i m i t i v e s f
0002300 o r p r o c e e d i n g a l
0002320 l o w b e t t e r a m o r
0002340 e i n t e g r a t e d r e l
0002360 a t i o n s h i p b e t w e e
0002400 n t h e u s e r p r o g r
0002420 a m a n d t h e i n t e r
0002440 a c t i v e d e b u g g e r .
0002460 \r I t i s n o t n e c e s
0002500 s a r y t h a t a l l c o
0002520 n d i t i o n s b e h a n d
0002540 l e d . S o m e c o n d i t
0002560 i o n s a r e t r i v i a l
0002600 e n o u g h t h a t a f
0002620 a i l u r e t o h a n d l e
0002640 t h e m m a y b e d i s
0002660 r e g a r d e d . O t h e r s
0002700 , w h i c h w e w i l l
0002720 c a l l s e r i o u s c o n
0002740 d i t i o n s m u s t b e
0002760 h a n d l e d i n o r d e r
0003000 t o a s s u r e c o r r e
0003020 c t p r o g r a m b e h a v
0003040 i o r . I f a s e r i o u
0003060 s c o n d i t i o n i s s
0003100 i g n a l l e d b u t n o
0003120 h a n d l e r i s f o u n d
0003140 , t h e d e b u g g e r w
0003160 i l l b e e n t e r e d s
0003200 o t h a t t h e u s e r
0003220 m a y i n t e r a c t i v e l
0003240 y s p e c i f y h o w t o
0003260 p r o c e e d . \r S e r i o u
0003300 s c o n d i t i o n s w h i
0003320 c h r e s u l t f r o m i
0003340 n c o r r e c t p r o g r a m
0003360 s o r d a t a a r e c a
0003400 l l e d e r r o r s . N o t
0003420 a l l s e r i o u s c o n
0003440 d i t i o n s a r e e r r o
0003460 r s , h o w e v e r . S t o
0003500 r a g e c o n d i t i o n s
0003520 a r e e x a m p l e s o f
0003540 s e r i o u s c o n d i t i o
0003560 n s t h a t a r e n o t
0003600 e r r o r s . F o r e x a m
0003620 p l e , t h e c o n t r o l
0003640 s t a c k m a y l e g i t
0003660 i m a t e l y o v e r f l o w
0003700 w i t h o u t a p r o g r
0003720 a m b e i n g i n e r r o
0003740 r . E v e n t h o u g h a
0003760 s t a c k o v e r f l o w
0004000 i s n o t n e c e s s a r i
0004020 l y a p r o g r a m e r r
0004040 o r , i t i s s e r i o u
0004060 s e n o u g h t o w a r r
0004100 a n t e n t r y t o t h e
0004120 d e b u g g e r i f t h e
0004140 c o n d i t i o n g o e s
0004160 u n h a n d l e d . \r S o m e
0004200 t y p e s o f c o n d i t i
0004220 o n s a r e p r e d e f i n
0004240 e d b y t h e s y s t e m
0004260 . A l l t y p e s o f c
0004300 o n d i t i o n s a r e s u
0004320 b t y p e s o f c o n d i t
0004340 i o n . T h a t i s , ( t
0004360 y p e p c ' c o n d i t i o
0004400 n ) i s t r u e i f f c
0004420 i s a c o n d i t i o n .
0004440 \r S y s t e m s w i t h n
0004460 o n - h i e r a r c h i c a l
0004500 t y p e s y s t e m s a r e
0004520 a l l o w e d t o u s e
0004540 s u c h n o n - h i e r a r c
0004560 h i c a l t y p e s i n a
0004600 C L - v i s i b l e w a y
0004620 a s l o n g a s ( t y p e
0004640 p c ' c o n d i t i o n )
0004660 i s t r u e f o r s u c h
0004700 c o n d i t i o n s . N o
0004720 m e c h a n i s m i s c u
0004740 r r e n t l y p r o v i d e d
0004760 a t t h i s t i m e f o
0005000 r c r e a t i n g c o n d i
0005020 t i o n t y p e s t h a t
0005040 d i r e c t l y e x p l o i t
0005060 n o n - h i e r a r c h i c a
0005100 l i n h e r i t a n c e . \r T
0005120 h e o n l y C L - p r o v i
0005140 d e d m e c h a n i s m f o
0005160 r d e f i n i n g n e w c
0005200 o n d i t i o n t y p e s i
0005220 s d e f i n e - c o n d i t i
0005240 o n . T h e o n l y C L -
0005260 p r o v i d e d m e c h a n i
0005300 s m f o r i n s t a n t i a
0005320 t i n g a c o n d i t i o n
0005340 i s m a k e - c o n d i t i
0005360 o n . \r W h e n a c o n d i
0005400 t i o n o b j e c t i s c
0005420 r e a t e d , t h e m o s t
0005440 c o m m o n o p e r a t i o
0005460 n t o b e p e r f o r m e
0005500 d u p o n i t i s t o
0005520 s i g n a l i t ( a l t h o
0005540 u g h t h e r e m a y b e
0005560 a p p l i c a t i o n s i n
0005600 w h i c h t h i s d o e s
0005620 n o t h a p p e n , o r
0005640 d o e s n o t h a p p e n
0005660 i m m e d i a t e l y ) . \r W h
0005700 e n a c o n d i t i o n i
0005720 s s i g n a l l e d , t h e
0005740 s y s t e m t r i e s t o
0005760 l o c a t e t h e m o s t
0006000 a p p r o p r i a t e h a n
0006020 d l e r f o r t h e c o n
0006040 d i t i o n a n d i n v o k
0006060 e t h a t h a n d l e r .
0006100 H a n d l e r s a r e l o c
0006120 a t e d a c c o r d i n g t
0006140 o t h e f o l l o w i n g
0006160 r u l e s : \r 377 377 \0 357 f \0 \t 377 \0
0006200 C h e c k f o r l o c a l l
0006220 y d e f i n e d ( i e , b
0006240 o u n d ) h a n d l e r s . \r
0006260 377 377 \0 357 f \0 \t 377 \0 I f n o a
0006300 p p r o p r i a t e b o u n d
0006320 h a n d l e r i s f o u n
0006340 d , c h e c k f o r t h e
0006360 d e f a u l t h a n d l e r
0006400 f i r s t o f t h e s i
0006420 g n a l l e d t y p e a n d
0006440 t h e n o f e a c h o f
0006460 i t s s u p e r i o r s . \r
0006500 I f a n a p p r o p r i a t
0006520 e h a n d l e r i s f o u
0006540 n d , i t i s c a l l e d
0006560 . I n s o m e c i r c u m
0006600 s t a n c e s ( t o b e d
0006620 e s c r i b e d l a t e r ) ,
0006640 t h e h a n d l e r m a y
0006660 d e c l i n e b y s i m p
0006700 l y r e t u r n i n g w i t
0006720 h o u t p e r f o r m i n g
0006740 a n o n - l o c a l t r a n
0006760 s f e r o f c o n t r o l .
0007000 I n s u c h c a s e s ,
0007020 t h e s e a r c h f o r a
0007040 n a p p r o p r i a t e h a
0007060 n d l e r i s p i c k e d
0007100 u p w h e r e i t l e f t
0007120 o f f , a s i f t h e
0007140 c a l l e d h a n d l e r h
0007160 a d n e v e r b e e n p r
0007200 e s e n t . [ A n i m p o r
0007220 t a n t i n v a r i a n t t
0007240 h a t K M P d o e s n ' t
0007260 m e n t i o n i s t h a t
0007300 w h e n a h a n d l e r i
0007320 s r u n n i n g t h e " h
0007340 a n d l e r b i n d i n g s
0007360 t a c k " i s p o p p e d
0007400 b a c k t o j u s t b e l
0007420 o w t h e b i n d i n g t
0007440 h a t c a u s e d t h a t
0007460 h a n d l e r t o b e i n
0007500 v o k e d . T h i s i s t
0007520 o a v o i d i n f i n i t e
0007540 r e c u r s i o n i n t h
0007560 e c a s e t h a t a h a
0007600 n d l e r a l s o s i g n a
0007620 l s a c o n d i t i o n .
0007640 - A M D ] \r I f n o b o u n
0007660 d h a n d l e r o r d e f
0007700 a u l t h a n d l e r i s
0007720 f o u n d , o r i f a l l
0007740 h a n d l e r s w h i c h
0007760 w e r e f o u n d d e c l i
0010000 n e , s i g n a l r e t u r
0010020 n s t h e c o n d i t i o n
0010040 w h i c h w a s s i g n a
0010060 l l e d . \r W h e n a c o n
0010100 d i t i o n i s s i g n a l
0010120 l e d , h a n d l e r s a r
0010140 e s e a r c h e d f o r i
0010160 n t h e d y n a m i c e n
0010200 v i r o n m e n t o f t h e
0010220 s i g n a l l e r . H a n d
0010240 l e r s c a n b e e s t a
0010260 b l i s h e d w i t h i n a
0010300 d y n a m i c c o n t e x t
0010320 b y u s e o f c o n d i
0010340 t i o n - b i n d . \r A h a
0010360 n d l e r i s a f u n c t
0010400 i o n o f o n e a r g u m
0010420 e n t , t h e c o n d i t i
0010440 o n t o b e h a n d l e d
0010460 . T h e h a n d l e r m a
0010500 y i n s p e c t t h e o b
0010520 j e c t ( u s i n g p r i m
0010540 i t i v e s d e s c r i b e d
0010560 i n a n o t h e r s e c t
0010600 i o n ) t o b e s u r e
0010620 i t i s i n t e r e s t e d
0010640 i n h a n d l i n g t h e
0010660 c o n d i t i o n . A f t
0010700 e r i n s p e c t i n g t h
0010720 e c o n d i t i o n , t h e
0010740 h a n d l e r m u s t t a
0010760 k e o n e o f t h e f o
0011000 l l o w i n g a c t i o n s :
0011020 \r 377 377 \0 357 f \0 \t 377 \0 I t m a y
0011040 d e c l i n e t o h a n d
0011060 l e t h e c o n d i t i o n
0011100 , b y s i m p l y r e t u
0011120 r n i n g . W h e n t h i s
0011140 h a p p e n e d , t h e r
0011160 e t u r n e d v a l u e s a
0011200 r e i g n o r e d a n d t
0011220 h e e f f e c t i s t h e
0011240 s a m e a s i f t h e
0011260 h a n d l e r h a d b e e n
0011300 i n v i s i b l e t o t h
0011320 e m e c h a n i s m s e e k
0011340 i n g t o f i n d a h a
0011360 n d l e r . T h e n e x t
0011400 h a n d l e r i n l i n e
0011420 w i l l b e t r i e d , o
0011440 r i f n o s u c h h a n
0011460 d l e r , t h e d e f a u l
0011500 t a c t i o n f o r t h e
0011520 g i v e n c o n d i t i o n
0011540 w i l l b e t a k e n .
0011560 A d e f a u l t h a n d l e
0011600 r m a y a l s o d e c l i
0011620 n e , i n w h i c h c a s
0011640 e t h e c o n d i t i o n
0011660 w i l l g o u n h a n d l e
0011700 d . \r 377 377 \0 357 f \0 \t 377 \0 I t m
0011720 a y p e r f o r m s o m e
0011740 n o n - l o c a l t r a n s f
0011760 e r o f c o n t r o l u s
0012000 i n g g o , r e t u r n ,
0012020 t h r o w , a b o r t , o r
0012040 i n v o k e - p r o c e e d -
0012060 c a s e . \r 377 377 \0 357 f \0 \t 377 \0 I
0012100 t m a y s i g n a l a n o
0012120 t h e r c o n d i t i o n . \r
0012140 377 377 \0 357 f \0 \t 377 \0 I t m a y
0012160 i n v o k e t h e i n t e r
0012200 a c t i v e d e b u g g e r .
0012220 \r W h e n a c o n d i t i o
0012240 n i s s i g n a l l e d ,
0012260 a f a c i l i t y i s a v
0012300 a i l a b l e f o r u s e
0012320 b y h a n d l e r s t o n
0012340 o n - l o c a l l y t r a n s
0012360 f e r c o n t r o l t o a
0012400 n o u t e r d y n a m i c
0012420 c o n t o u r o f t h e p
0012440 r o g r a m . T h e f o r m
0012460 w h i c h c r e a t e s c
0012500 o n t o u r s w h i c h m a
0012520 y b e r e t u r n e d t o
0012540 i s c a l l e d p r o c e
0012560 e d - c a s e . T h e f u n
0012600 c t i o n w h i c h t r a n
0012620 s f e r s c o n t r o l t o
0012640 a p r o c e e d - c a s e
0012660 c l a u s e i s c a l l e d
0012700 i n v o k e - p r o c e e d -
0012720 c a s e . \r I n s o m e c a
0012740 s e s , i t m a y b e u
0012760 s e f u l t o r e p o r t
0013000 a c o n d i t i o n o r a
0013020 p r o c e e d c a s e t o
0013040 a u s e r o r a l o g
0013060 f i l e o f s o m e s o
0013100 r t . W h e n t h e p r i
0013120 n t e r i s i n v o k e d
0013140 o n a c o n d i t i o n o
0013160 r p r o c e e d c a s e w
0013200 h i l e * p r i n t - e s c a
0013220 p e * i s n i l , t h e
0013240 r e p o r t - f u n c t i o n
0013260 f o r t h a t o b j e c t
0013300 i s i n v o k e d . I n p
0013320 a r t i c u l a r , t h i s
0013340 m e a n s t h a t a n e x
0013360 p r e s s i o n l i k e \r
0013400 ( f o r m a t t " ~ A " c
0013420 o n d i t i o n ) \r w i l l i
0013440 n v o k e c o n d i t i o n '
0013460 s r e p o r t f u n c t i o
0013500 n . B e c a u s e o f t h
0013520 i s , n o s p e c i a l f
0013540 u n c t i o n i s p r o v i
0013560 d e d f o r i n v o k i n g
0013600 t h e r e p o r t f u n c
0013620 t i o n o f a c o n d i t
0013640 i o n o r a p r o c e e d
0013660 c a s e . \r P r o g r a m I
0013700 n t e r f a c e t o t h e
0013720 C o n d i t i o n S y s t e m
0013740 \r D e f i n i n g a n d C r
0013760 e a t i n g C o n d i t i o n
0014000 s \r d e f i n e - c o n d i t i
0014020 o n n a m e p a r e n t - t
0014040 y p e [ k e y w o r d v a l
0014060 u e ] * & r e s t s l o t s
0014100 \t [ S p e c i a l F o r m ] \r
0014120 D e f i n e s a n e w c o
0014140 n d i t i o n t y p e w i t
0014160 h t h e g i v e n n a m e
0014200 , m a k i n g i t a s u
0014220 b t y p e o f t h e g i v
0014240 e n p a r e n t - t y p e .
0014260 E x c e p t a s o t h e r w
0014300 i s e n o t e d , t h e a
0014320 r g u m e n t s a r e n o t
0014340 e v a l u a t e d . \r T h e
0014360 v a l i d k e y w o r d / v a
0014400 l u e p a i r s a r e : \r :
0014420 c o n c - n a m e s y m b o l
0014440 - o r - s t r i n g \r A s i n
0014460 d e f s t r u c t , t h i s
0014500 s e t s u p a u t o m a t
0014520 i c p r e f i x i n g o f
0014540 t h e n a m e s o f s l o
0014560 t a c c e s s o r s . A l s
0014600 o a s i n d e f s t r u c
0014620 t , t h e d e f a u l t b
0014640 e h a v i o r i s t o u s
0014660 e t h e n a m e o f t h
0014700 e n e w t y p e f o l l o
0014720 w e d b y a h y p h e n .
0014740 \r : r e p o r t - f u n c t i o
0014760 n e x p r e s s i o n \r e x p
0015000 r e s s i o n s h o u l d b
0015020 e a s u i t a b l e a r g
0015040 u m e n t t o t h e f u n
0015060 c t i o n s p e c i a l f o
0015100 r m . I t d e s i g n a t e
0015120 s a f u n c t i o n o f
0015140 t w o a r g u m e n t s , a
0015160 c o n d i t i o n a n d a
0015200 s t r e a m , w h i c h p
0015220 r i n t s t h e c o n d i t
0015240 i o n t o t h e s t r e a
0015260 m w h e n * p r i n t - e s
0015300 c a p e * i s n i l . [ I
0015320 t i s i n t e n d e d t h
0015340 a t t h e : r e p o r t - f
0015360 u n c t i o n d e s c r i b e
0015400 t h e c o n d i t i o n i
0015420 n a h u m a n - s e n s i b
0015440 l e f o r m . T h i s i t
0015460 e m i s s o m e w h a t d
0015500 i f f e r e n t t h a n a
0015520 s t r u c t u r e ' s : p r i
0015540 n t - f u n c t i o n i n t
0015560 h a t i t i s o n l y u
0015600 s e d i f * p r i n t - e s
0015620 c a p e * i s n i l . - A
0015640 M D ] \r : r e p o r t f o r m
0015660 \r A s h o r t f o r m o f
0015700 : r e p o r t - f u n c t i o
0015720 n t o c o v e r t w o c
0015740 o m m o n c a s e s . \r I f
0015760 f o r m i s a c o n s t
0016000 a n t s t r i n g , t h i s
0016020 i s t h e s a m e a s
0016040 : r e p o r t - f u n c t i o n
0016060 ( l a m b d a ( i g n o r e
0016100 s t r e a m ) ( w r i t e -
0016120 s t r i n g f o r m s t r e
0016140 a m ) ) . O t h e r w i s e ,
0016160 t h i s i s t h e s a m
0016200 e a s : r e p o r t - f u n
0016220 c t i o n ( l a m b d a ( c
0016240 o n d i t i o n * s t a n d a
0016260 r d - o u t p u t * ) f o r m
0016300 ) . I n t h i s l a t t e
0016320 r c a s e , t h e f o r m
0016340 d e s c r i b e s h o w t
0016360 o p r i n t o b j e c t s
0016400 o f t h e t y p e b e i n
0016420 g d e f i n e d . T h e f
0016440 o r m s h o u l d d o o u
0016460 t p u t t o s t a n d a r d
0016500 o u t p u t . T h e c o n
0016520 d i t i o n b e i n g p r i
0016540 n t e d w i l l b e t h e
0016560 v a l u e o f t h e v a
0016600 r i a b l e c o n d i t i o n
0016620 . [ T h e s e c o n d f l
0016640 a v o r o f : r e p o r t
0016660 i s a f o r m t h a t (
0016700 p o s s i b l y ) u s e s t
0016720 h e v a r i a b l e c o n d
0016740 i t i o n f r e e l y a n d
0016760 d o e s o u t p u t t o
0017000 * s t a n d a r d - o u t p u t
0017020 * . F o r e x a m p l e ,
0017040 : r e p o r t ( f o r m a t
0017060 t " ~ A . " ( f r o b - a r
0017100 o u n d - w i t h c o n d i t
0017120 i o n ) ) i s t h e s a m
0017140 e a s : r e p o r t - f u n
0017160 c t i o n ( l a m b d a ( c
0017200 o n d i t i o n s t r e a m )
0017220 ( f o r m a t s t r e a m
0017240 " ~ A . " ( f r o b - a r o u
0017260 n d - w i t h c o n d i t i o
0017300 n ) ) ) . - A M D ] \r : h a n
0017320 d l e f o r m \r A n e x p r
0017340 e s s i o n t o b e u s e
0017360 d a s t h e b o d y o f
0017400 a d e f a u l t h a n d l
0017420 e r f o r t h i s c o n d
0017440 i t i o n t y p e . W h i l
0017460 e e x e c u t i n g f o r m
0017500 , t h e v a r i a b l e c
0017520 o n d i t i o n w i l l b e
0017540 b o u n d t o t h e c o
0017560 n d i t i o n b e i n g h a
0017600 n d l e d . [ T h a t i s ,
0017620 : h a n d l e f o r m d e
0017640 f i n e s a f u n c t i o n
0017660 ( l a m b d a ( c o n d i t
0017700 i o n ) f o r m ) a s t h
0017720 e d e f a u l t h a n d l e
0017740 r f o r t h a t t y p e .
0017760 - A M D ] \r I t i s a n
0020000 e r r o r t o s p e c i f y
0020020 b o t h : r e p o r t - f u
0020040 n c t i o n a n d : r e p o
0020060 r t i n t h e s a m e d
0020100 e f i n e - c o n d i t i o n .
0020120 I f n e i t h e r : r e p
0020140 o r t - f u n c t i o n n o r
0020160 : r e p o r t i s s p e c
0020200 i f i e d , i n f o r m a t i
0020220 o n a b o u t h o w t o
0020240 p r i n t t h i s t y p e
0020260 o f c o n d i t i o n w i l
0020300 l b e i n h e r i t e d f
0020320 r o m t h e p a r e n t - t
0020340 y p e . [ T h e s e k e y /
0020360 v a l u e p a i r s d o n
0020400 o t d e f i n e s l o t s
0020420 o f t h e c o n d i t i o n
0020440 . Y o u s h o u l d t h i
0020460 n k o f t h e m a s d e
0020500 f i n i n g c l a s s v a r
0020520 i a b l e s . - A M D ] \r s l
0020540 o t s i s a l i s t o f
0020560 s l o t - d e s c r i p t i o
0020600 n , a n d s p e c i f i e s
0020620 s l o t s t o b e u s e
0020640 d b y t h e g i v e n t
0020660 y p e . I n a d d i t i o n
0020700 t o t h o s e s p e c i f
0020720 i e d , t h e s l o t s o
0020740 f t h e p a r e n t - t y p
0020760 e a r e a l s o a v a i l
0021000 a b l e . A s l o t - d e s
0021020 c r i p t i o n i s e x a c
0021040 t l y t h e s a m e a s
0021060 f o r d e f s t r u c t e x
0021100 c e p t t h a t n o s l o
0021120 t - o p t i o n s a r e a l
0021140 l o w e d . [ C o n d i t i o
0021160 n o b j e c t s a r e i m
0021200 m u t a b l e , i . e . , a
0021220 l l o f t h e i r s l o t
0021240 s a r e d e c l a r e d t
0021260 o b e : r e a d - o n l y .
0021300 - A M D ] \r m a k e - c o n d
0021320 i t i o n w i l l a c c e p
0021340 t k e y w o r d s w i t h
0021360 t h e p r i n t n a m e o f
0021400 a n y o f t h e d e s i
0021420 g n a t e d s l o t s , a n
0021440 d w i l l i n i t i a l i z
0021460 e t h e c o r r e s p o n d
0021500 i n g s l o t s i n c o n
0021520 d i t i o n s i t c r e a t
0021540 e s . \r A c c e s s o r s a r
0021560 e c r e a t e d a c c o r d
0021600 i n g t o t h e s a m e
0021620 r u l e s a s u s e d b y
0021640 d e f s t r u c t . F o r
0021660 e x a m p l e : \r ( d e f i n e
0021700 - c o n d i t i o n b a d - f
0021720 o o d - c o l o r f o o d - l
0021740 o s s a g e \r : r e p o r t
0021760 ( f o r m a t t " T h e
0022000 f o o d ~ A w a s ~ A . "
0022020 \r ( b a
0022040 d - f o o d - c o l o r - f o o
0022060 d c o n d i t i o n ) ( b
0022100 a d - f o o d - c o l o r - c o
0022120 l o r c o n d i t i o n ) ) \r
0022140 f o o d c o l o r ) \r d e
0022160 f i n e s a n e r r o r o
0022200 f t y p e b a d - f o o d -
0022220 c o l o r w h i c h i n h e
0022240 r i t s f r o m t h e f o
0022260 o d - l o s s a g e c o n d i
0022300 t i o n t y p e . T h e n
0022320 e w t y p e h a s s l o t
0022340 s f o o d a n d c o l o r
0022360 s o t h a t m a k e - c o
0022400 n d i t i o n w i l l a c c
0022420 e p t : f o o d a n d : c
0022440 o l o r k e y w o r d s a n
0022460 d a c c e s s o r s b a d -
0022500 f o o d - c o l o r - f o o d
0022520 a n d b a d - f o o d - c o l
0022540 o r - c o l o r w i l l a p
0022560 p l y t o o b j e c t s o
0022600 f t h i s t y p e . \r N o
0022620 f u n c t i o n s a r e p r
0022640 o v i d e d f o r d i r e c
0022660 t l y a c c e s s i n g t h
0022700 e r e p o r t f u n c t i o
0022720 n o r t h e d e f a u l t
0022740 h a n d l e r f o r a c
0022760 o n d i t i o n s i n c e i
0023000 t i s n o t b e l i e v e
0023020 d t h a t t h i s w i l l
0023040 b e v e r y u s e f u l
0023060 i n p o r t a b l e c o d e
0023100 ( a t l e a s t u n t i l
0023120 a n o b j e c t s y s t e
0023140 m i s b e t t e r d e f i
0023160 n e d ) . \r T h e r e p o r t
0023200 f u n c t i o n f o r a
0023220 c o n d i t i o n w i l l b
0023240 e i m p l i c i t l y c a l
0023260 l e d a n y t i m e a c
0023300 o n d i t i o n i s p r i n
0023320 t e d w i t h * p r i n t -
0023340 e s c a p e * b e i n g n i
0023360 l . H e n c e , ( p r i n c
0023400 c o n d i t i o n ) o r (
0023420 f o r m a t t " ~ A " c o
0023440 n d i t i o n ) a r e p o s
0023460 s i b l e w a y s o f i n
0023500 v o k i n g t h e c o n d i
0023520 t i o n ' s p r i n t e r . \r
0023540 T h e d e f a u l t h a n d
0023560 l e r w i l l b e i m p l
0023600 i c i t l y c a l l e d d u
0023620 r i n g t h e s i g n a l l
0023640 i n g p r o c e s s a n d
0023660 n e v e r h a s a n y r e
0023700 a s o n t o b e m a n u a
0023720 l l y i n v o k e d . \r H e r
0023740 e a r e s o m e e x a m p
0023760 l e s o f c r e a t i n g
0024000 c o n d i t i o n s . T h e s
0024020 e f o r m s d e f i n e a
0024040 c o n d i t i o n c a l l e
0024060 d m a c h i n e - e r r o r
0024100 w h i c h i n h e r i t s f
0024120 r o m e r r o r : \r ( d e f i
0024140 n e - c o n d i t i o n m a c
0024160 h i n e - e r r o r e r r o r
0024200 \r : r e p o r t ( f o r m
0024220 a t t " T h e r e i s a
0024240 p r o b l e m w i t h ~ A
0024260 . " \r (
0024300 m a c h i n e - e r r o r - m a
0024320 c h i n e - n a m e c o n d i
0024340 t i o n ) ) \r m a c h i n e
0024360 - n a m e ) \r T h i s d e f i
0024400 n e s a n e w e r r o r
0024420 c o n d i t i o n ( a s u b
0024440 t y p e o f m a c h i n e -
0024460 e r r o r ) f o r u s e w
0024500 h e n m a c h i n e s a r e
0024520 n o t a v a i l a b l e : \r
0024540 ( d e f i n e - c o n d i t i o
0024560 n m a c h i n e - n o t - a v
0024600 a i l a b l e - e r r o r m a
0024620 c h i n e - e r r o r \r : r
0024640 e p o r t ( f o r m a t t
0024660 " T h e m a c h i n e ~ A
0024700 i s n o t a v a i l a b l e
0024720 . " \r (
0024740 m a c h i n e - e r r o r - m a
0024760 c h i n e - n a m e c o n d i
0025000 t i o n ) ) ) \r T h i s d e f
0025020 i n e s a s t i l l m o r
0025040 e s p e c i f i c c o n d i
0025060 t i o n , b u i l t u p o n
0025100 m a c h i n e - n o t - a v a
0025120 i l a b l e - e r r o r , w h
0025140 i c h p r o v i d e s a d
0025160 e f a u l t f o r m a c h i
0025200 n e - n a m e b u t w h i c
0025220 h d o e s n o t p r o v i
0025240 d e a n y n e w s l o t s
0025260 : \r ( d e f i n e - c o n d i t
0025300 i o n m y - f a v o r i t e -
0025320 m a c h i n e - n o t - a v a i
0025340 l a b l e - e r r o r m a c h
0025360 i n e - n o t - a v a i l a b l
0025400 e - e r r o r \r ( m a c h i
0025420 n e - n a m e " M I T - M C .
0025440 A R P A " ) ) \r T h i s g i v
0025460 e s t h e m a c h i n e - n
0025500 a m e s l o t a d e f a u
0025520 l t i n i t i a l i z a t i o
0025540 n . S i n c e n o : r e p
0025560 o r t c l a u s e w a s g
0025600 i v e n , t h e i n f o r m
0025620 a t i o n s u p p l i e d i
0025640 n t h e d e f i n i t i o n
0025660 o f m a c h i n e - n o t -
0025700 a v a i l a b l e - e r r o r
0025720 w i l l b e u s e d i f
0025740 a c o n d i t i o n o f t
0025760 h i s t y p e i s p r i n
0026000 t e d w h i l e * p r i n t
0026020 - e s c a p e * i s n i l .
0026040 \r m a k e - c o n d i t i o n
0026060 t y p e & r e s t s l o t -
0026100 i n i t i a l i z a t i o n s \t
0026120 [ F u n c t i o n ] \r C a l l s
0026140 t h e a p p r o p r i a t e
0026160 c o n s t r u c t o r f u n
0026200 c t i o n f o r t h e g i
0026220 v e n t y p e , p a s s i n
0026240 g a l o n g t h e g i v e
0026260 n s l o t i n i t i a l i z
0026300 a t i o n s t o t h e c o
0026320 n s t r u c t o r , a n d r
0026340 e t u r n i n g a n i n s t
0026360 a n t i a t e d c o n d i t i
0026400 o n . \r T h e s l o t - i n i
0026420 t i a l i z a t i o n s a r e
0026440 g i v e n i n a l t e r n
0026460 a t i n g k e y w o r d / v a
0026500 l u e p a i r s . e g , (
0026520 m a k e - c o n d i t i o n '
0026540 b a d - f o o d - c o l o r :
0026560 f o o d m y - f o o d : c o
0026600 l o r m y - c o l o r ) [ T
0026620 h i s f u n c t i o n i s
0026640 p r o v i d e d m a i n l y
0026660 f o r w r i t i n g s u b r
0026700 o u t i n e s t h a t m a n
0026720 u f a c t u r e a c o n d i
0026740 t i o n t o b e s i g n a
0026760 l l e d . S i n c e a l l
0027000 t h e c o n d i t i o n s i
0027020 g n a l l i n g f u n c t i o
0027040 n s c a n t a k e a t y
0027060 p e a n d s l o t - i n i t
0027100 i a l i z a t i o n s i t i
0027120 s u s u a l l y e a s i e r
0027140 t o c a l l t h e m d i
0027160 r e c t l y . - A M D ] \r D e
0027200 s i g n N o t e : I f e i
0027220 t h e r d e f s t r u c t o
0027240 r s o m e o t h e r t y p
0027260 e s y s t e m a d o p t e d
0027300 l a t e r b y C L e v e
0027320 r p r o v i d e s a m a k
0027340 e - i n s t a n c e p r i m i
0027360 t i v e , m a k e - c o n d i
0027400 t i o n w o u l d n o l o
0027420 n g e r b e n e c e s s a r
0027440 y . \r S i g n a l l i n g C o
0027460 n d i t i o n s \r s i g n a l
0027500 d a t u m & r e s t a r g u
0027520 m e n t s \t [ F u n c t i o n ]
0027540 \r I n v o k e s t h e s i g
0027560 n a l f a c i l i t y o n
0027600 a c o n d i t i o n . I f
0027620 t h e c o n d i t i o n i s
0027640 n o t h a n d l e d , s i
0027660 g n a l r e t u r n s t h e
0027700 c o n d i t i o n o b j e c
0027720 t t h a t w a s s i g n a
0027740 l l e d . \r I f d a t u m i
0027760 s a c o n d i t i o n t h
0030000 e n t h a t c o n d i t i o
0030020 n i s u s e d d i r e c t
0030040 l y . I n t h i s c a s e
0030060 , i t i s a n e r r o r
0030100 f o r a r g u m e n t s t
0030120 o b e n o n - n i l . \r I f
0030140 d a t u m i s a c o n d
0030160 i t i o n t y p e , t h e n
0030200 t h e c o n d i t i o n u
0030220 s e d i s t h e r e s u l
0030240 t o f d o i n g ( a p p l
0030260 y # ' m a k e - c o n d i t i
0030300 o n d a t u m a r g u m e n
0030320 t s ) . \r I f d a t u m i s
0030340 a s t r i n g , t h e n
0030360 t h e c o n d i t i o n u s
0030400 e d i s t h e r e s u l t
0030420 o f d o i n g ( m a k e -
0030440 c o n d i t i o n ' s i m p l
0030460 e - c o n d i t i o n : f o r
0030500 m a t - s t r i n g d a t u m
0030520 : f o r m a t - a r g u m e n
0030540 t s a r g u m e n t s ) . \r [
0030560 I f t h e c o n d i t i o n
0030600 i s o f t y p e s e r i
0030620 o u s - c o n d i t i o n t h
0030640 e n s i g n a l w i l l b
0030660 e h a v e e x a c t l y l i
0030700 k e e r r o r , i . e . ,
0030720 i t w i l l c a l l d e b
0030740 u g i f t h e c o n d i t
0030760 i o n i s n ' t h a n d l e
0031000 d a n d n e v e r r e t u
0031020 r n t o i t s c a l l e r
0031040 . - A M D ] \r e r r o r d a
0031060 t u m & r e s t a r g u m e
0031100 n t s \t [ F u n c t i o n ] \r I
0031120 n v o k e s t h e s i g n a
0031140 l f a c i l i t y o n a
0031160 c o n d i t i o n . I f t h
0031200 e c o n d i t i o n i s n
0031220 o t h a n d l e d , ( d e b
0031240 u g c o n d i t i o n ) i s
0031260 d o n e . [ S e e b e l o
0031300 w . S i n c e d e b u g d
0031320 o e s n o t r e t u r n t
0031340 o i t s c a l l e r , n e
0031360 i t h e r w i l l e r r o r
0031400 . T h e o n l y w a y o
0031420 u t i s e i t h e r b y
0031440 a n o n - l o c a l j u m p
0031460 o r b y i n v o k i n g
0031500 a p r o c e e d c a s e .
0031520 - A M D ] \r I f d a t u m
0031540 i s a c o n d i t i o n ,
0031560 t h e n t h a t c o n d i t
0031600 i o n i s u s e d d i r e
0031620 c t l y . I n t h i s c a
0031640 s e , i t i s a n e r r
0031660 o r f o r a r g u m e n t s
0031700 t o b e n o n - n i l . \r
0031720 I f d a t u m a c o n d i
0031740 t i o n t y p e , t h e n
0031760 t h e c o n d i t i o n u s
0032000 e d i s t h e r e s u l t
0032020 o f d o i n g ( a p p l y
0032040 # ' m a k e - c o n d i t i o
0032060 n d a t u m a r g u m e n t
0032100 s ) . \r I f d a t u m i s
0032120 a s t r i n g , t h e n t
0032140 h e c o n d i t i o n u s e
0032160 d i s t h e r e s u l t
0032200 o f d o i n g ( m a k e - c
0032220 o n d i t i o n ' s i m p l e
0032240 - e r r o r : f o r m a t - s
0032260 t r i n g d a t u m : f o r
0032300 m a t - a r g u m e n t s a r
0032320 g u m e n t s ) . \r c e r r o r
0032340 p r o c e e d - f o r m a t -
0032360 s t r i n g d a t u m & r e
0032400 s t a r g u m e n t s \t [ F u
0032420 n c t i o n ] \r I n v o k e s
0032440 t h e s i g n a l f a c i l
0032460 i t y o n a c o n d i t i
0032500 o n . I f t h e c o n d i
0032520 t i o n i s n o t h a n d
0032540 l e d , ( d e b u g c o n d
0032560 i t i o n ) i s d o n e .
0032600 [ c e r r o r e n a b l e s
0032620 t h e p r o c e e d t y p e
0032640 p r o c e e d , w h i c h
0032660 w i l l s i m p l y r e t u
0032700 r n t h e c o n d i t i o n
0032720 b e i n g s i g n a l l e d
0032740 f r o m c e r r o r . - A
0032760 M D ] \r I f d a t u m i s
0033000 a c o n d i t i o n , t h e
0033020 n t h a t c o n d i t i o n
0033040 i s u s e d d i r e c t l
0033060 y . I n t h i s c a s e ,
0033100 a r g u m e n t s w i l l
0033120 b e u s e d o n l y w i t
0033140 h t h e p r o c e e d - f o
0033160 r m a t - s t r i n g a n d
0033200 w i l l n o t b e u s e d
0033220 t o i n i t i a l i z e d
0033240 a t u m . \r I f d a t u m a
0033260 c o n d i t i o n t y p e ,
0033300 t h e n t h e c o n d i t
0033320 i o n u s e d i s t h e
0033340 r e s u l t o f d o i n g
0033360 ( a p p l y # ' m a k e - c o
0033400 n d i t i o n d a t u m a r
0033420 g u m e n t s ) . \r I f d a t
0033440 u m i s a s t r i n g ,
0033460 t h e n t h e c o n d i t i
0033500 o n u s e d i s t h e r
0033520 e s u l t o f d o i n g (
0033540 m a k e - c o n d i t i o n '
0033560 s i m p l e - e r r o r : f o
0033600 r m a t - s t r i n g d a t u
0033620 m : f o r m a t - a r g u m e
0033640 n t s a r g u m e n t s ) . \r
0033660 T h e p r o c e e d - f o r m
0033700 a t - s t r i n g m u s t b
0033720 e a s t r i n g . N o t e
0033740 t h a t i f d a t u m i
0033760 s n o t a s t r i n g ,
0034000 t h e n t h e f o r m a t
0034020 a r g u m e n t s u s e d b
0034040 y t h e p r o c e e d - f o
0034060 r m a t - s t r i n g w i l l
0034100 s t i l l b e t h e a r
0034120 g u m e n t s ( i n t h e
0034140 k e y w o r d f o r m a t a
0034160 s s p e c i f i e d ) . I n
0034200 t h i s c a s e , s o m e
0034220 c a r e m a y b e n e c
0034240 e s s a r y t o s e t u p
0034260 t h e p r o c e e d - f o r
0034300 m a t - s t r i n g c o r r e
0034320 c t l y . T h e f o r m a t
0034340 o p ~ * m a y b e p a
0034360 r t i c u l a r l y u s e f u
0034400 l i n t h i s s i t u a t
0034420 i o n . \r T h e v a l u e r
0034440 e t u r n e d b y c e r r o
0034460 r i s t h e c o n d i t i
0034500 o n w h i c h w a s s i g
0034520 n a l l e d . [ T h i s i s
0034540 a c h a n g e f r o m C
0034560 L t L : c e r r o r r e t u
0034600 r n s n i l t h e r e . -
0034620 A M D ] \r w a r n d a t u m
0034640 & r e s t a r g u m e n t s \t
0034660 [ F u n c t i o n ] \r I n v o k
0034700 e s t h e s i g n a l f a
0034720 c i l i t y o n a c o n d
0034740 i t i o n . I f t h e c o
0034760 n d i t i o n i s n o t h
0035000 a n d l e d , t h e n t h e
0035020 t e x t o f t h e w a r
0035040 n i n g i s o u t p u t t
0035060 o * e r r o r - o u t p u t *
0035100 ( w i t h p o s s i b l e
0035120 i m p l e m e n t a t i o n - s
0035140 p e c i f i c e x t r a s s
0035160 u c h a s m o v i n g t o
0035200 a f r e s h l i n e b e
0035220 f o r e a n d a f t e r t
0035240 h e d i s p l a y o f t h
0035260 e w a r n i n g , o r s u
0035300 p p l y i n g s o m e i n t
0035320 r o d u c t o r y t e x t t
0035340 h a t m i g h t m e n t i o
0035360 n t h e n a m e o f t h
0035400 e f u n c t i o n w h i c h
0035420 c a l l e d w a r n ) .
0035440 I f * b r e a k - o n - w a r
0035460 n i n g s * i s t r u e ,
0035500 t h e n i n a d d i t i o n
0035520 t o p r i n t i n g t h e
0035540 w a r n i n g , t h e d e
0035560 b u g g e r i s e n t e r e
0035600 d . I n t h i s c a s e ,
0035620 w a r n r e t u r n s o n
0035640 l y i f p r o c e e d i s
0035660 d o n e f r o m t h e d
0035700 e b u g g e r . T h e v a l
0035720 u e r e t u r n e d b y w
0035740 a r n i s t h e c o n d i
0035760 t i o n w h i c h w a s s
0036000 i g n a l l e d . \r I f d a t
0036020 u m i s a c o n d i t i o
0036040 n , t h e n t h a t c o n
0036060 d i t i o n i s u s e d d
0036100 i r e c t l y . I n t h i s
0036120 c a s e , i t i s a n
0036140 e r r o r f o r a r g u m e
0036160 n t s t o b e n o n - n i
0036200 l . \r I f d a t u m i s a
0036220 c o n d i t i o n t y p e ,
0036240 t h e n t h e c o n d i t
0036260 i o n u s e d i s t h e
0036300 r e s u l t o f d o i n g
0036320 ( a p p l y # ' m a k e - c o
0036340 n d i t i o n d a t u m a r
0036360 g u m e n t s ) . \r I f d a t
0036400 u m i s a s t r i n g ,
0036420 t h e n t h e c o n d i t i
0036440 o n u s e d i s t h e r
0036460 e s u l t o f d o i n g (
0036500 m a k e - c o n d i t i o n '
0036520 s i m p l e - w a r n i n g :
0036540 f o r m a t - s t r i n g d a
0036560 t u m : f o r m a t - a r g u
0036600 m e n t s a r g u m e n t s )
0036620 . \r [ I ' m n o t t o o c
0036640 l e a r o n w h a t y o u
0036660 d o i f a c o n d i t i
0036700 o n i s s u p p l i e d .
0036720 P e r h a p s V o l . 4 o
0036740 f t h e S y m b o l i c s
0036760 m a n u a l w i l l c l e a
0037000 r t h i n g s u p . - A M
0037020 D ] \r * b r e a k - o n - w a r
0037040 n i n g s * \t [ V a r i a b l e
0037060 ] \r { A s d e s c r i b e
0037100 d i n C L t L } \r H a n d l
0037120 i n g C o n d i t i o n s \r c
0037140 o n d i t i o n - b i n d b i
0037160 n d i n g s & r e s t f o r
0037200 m s \t [ S p e c i a l F o r m
0037220 ] \r E x e c u t e s b o d y
0037240 i n a d y n a m i c c o n
0037260 t e x t w h e r e t h e g
0037300 i v i n g l o c a l h a n d
0037320 l e r b i n d i n g s a r e
0037340 i n e f f e c t . T h e
0037360 b i n d i n g s m u s t t a
0037400 k e t h e f o r m ( t y p
0037420 e h a n d l e r ) . \r t y p e
0037440 m a y b e t h e n a m e
0037460 o f a c o n d i t i o n
0037500 t y p e o r a l i s t o
0037520 f c o n d i t i o n t y p e
0037540 s . \r h a n d l e r s h o u l
0037560 d e v a l u a t e t o a
0037600 f u n c t i o n t o b e u
0037620 s e d t o h a n d l e c o
0037640 n d i t i o n s o f t h e
0037660 g i v e n t y p e ( s ) d u
0037700 r i n g e x e c u t i o n o
0037720 f t h e f o r m s . \r c o n
0037740 d i t i o n - c a s e f o r m
0037760 & r e s t c a s e s \t [ S p
0040000 e c i a l F o r m ] \r E x e c
0040020 u t e s t h e g i v e n f
0040040 o r m . E a c h c a s e h
0040060 a s t h e f o r m ( t y p
0040100 e ( [ v a r ] ) . b o d y
0040120 ) . I f a c o n d i t i o
0040140 n i s s i g n a l l e d (
0040160 a n d n o t h a n d l e d
0040200 b y a n i n t e r v e n i n
0040220 g h a n d l e r ) d u r i n
0040240 g t h e e x e c u t i o n
0040260 o f t h e f o r m f o r
0040300 w h i c h t h e r e i s a
0040320 n a p p r o p r i a t e c l
0040340 a u s e 377 377 \0 357 % 377 \0 i e , o
0040360 n e f o r w h i c h ( t y
0040400 p e p c o n d i t i o n ' t
0040420 y p e ) i s t r u e 377 377 \0 357
0040440 % 377 \0 t h e n c o n t r o l
0040460 i s t r a n s f e r r e d t
0040500 o t h e b o d y o f t h
0040520 e r e l e v a n t c l a u s
0040540 e , b i n d i n g v a r ,
0040560 i f p r e s e n t , t o t
0040600 h e c o n d i t i o n w h i
0040620 c h w a s s i g n a l l e d
0040640 . I f n o c o n d i t i o
0040660 n i s s i g n a l l e d ,
0040700 t h e n t h e v a l u e s
0040720 r e s u l t i n g f r o m t
0040740 h e f o r m a r e r e t u
0040760 r n e d b y t h e c o n d
0041000 i t i o n - c a s e . I f t
0041020 h e c o n d i t i o n i s
0041040 n o t n e e d e d , v a r
0041060 m a y b e o m i t t e d . \r
0041100 t y p e m a y a l s o b e
0041120 a l i s t o f t y p e s
0041140 , i n w h i c h c a s e
0041160 i t w i l l c a t c h c o
0041200 n d i t i o n s o f a n y
0041220 o f t h e s p e c i f i e d
0041240 t y p e s . \r E x a m p l e s
0041260 : \r ( c o n d i t i o n - c a s
0041300 e ( / x y ) ( d i v i s
0041320 i o n - b y - z e r o ( ) n
0041340 i l ) ) \r ( c o n d i t i o n -
0041360 c a s e ( o p e n * t h e -
0041400 f i l e * : d i r e c t i o n
0041420 : i n p u t ) \r ( f i l e
0041440 - e r r o r ( c o n d i t i o
0041460 n ) ( f o r m a t t " ~ &
0041500 O p e n f a i l e d : ~ A ~
0041520 % " c o n d i t i o n ) ) ) \r
0041540 ( c o n d i t i o n - c a s e
0041560 ( s o m e - u s e r - f u n c t
0041600 i o n ) \r ( f i l e - e r r
0041620 o r ( c o n d i t i o n ) c
0041640 o n d i t i o n ) \r ( d i v
0041660 i s i o n - b y - z e r o ( )
0041700 0 ) \r ( ( u n b o u n d -
0041720 v a r i a b l e u n d e f i n
0041740 e d - f u n c t i o n ) ( )
0041760 ' u n b o u n d ) ) \r i g n o r
0042000 e - e r r o r s & b o d y f
0042020 o r m s \t [ M a c r o ] \r E x e
0042040 c u t e s i t s b o d y i
0042060 n a c o n t e x t w h i c
0042100 h h a n d l e s e r r o r s
0042120 o f t y p e e r r o r b
0042140 y r e t u r n i n g c o n t
0042160 r o l t o t h i s f o r m
0042200 . I f n o e r r o r i s
0042220 s i g n a l l e d , a n y
0042240 r e t u r n v a l u e s r e
0042260 t u r n e d b y t h e l a
0042300 s t f o r m a r e r e t u
0042320 r n e d b y i g n o r e - e
0042340 r r o r s . O t h e r w i s e
0042360 , n i l i s r e t u r n e
0042400 d . S y n o n y m f o r (
0042420 c o n d i t i o n - c a s e (
0042440 p r o g n . f o r m s ) (
0042460 e r r o r ( ) n i l ) ) . \r
0042500 [ P r e v i o u s i n c a r n
0042520 a t i o n s o f t h i s p
0042540 r o p o s a l a l s o d e f
0042560 i n e d c a t c h - c o n d i
0042600 t i o n , w h i c h w a s
0042620 l i k e i g n o r e - e r r o
0042640 r s b u t a l l o w e d y
0042660 o u t o s p e c i f y a n
0042700 a r b i t r a r y c o n d i
0042720 t i o n t y p e . T h i s
0042740 m a y b e u s e f u l t o
0042760 h a v e a r o u n d . - A
0043000 M D ] \r A l t h o u g h t h e
0043020 y a r e n o t d e s c r i
0043040 b e d i n d e t a i l h e
0043060 r e , i t i s e x p e c t
0043100 e d t h a t t h e m a c r
0043120 o s c h e c k - t y p e , a
0043140 s s e r t , e t y p e c a s e
0043160 , c t y p e c a s e , e c a
0043200 s e , c c a s e , & c . s
0043220 h o u l d c o n t i n u e t
0043240 o b e s u p p o r t e d e
0043260 s s e n t i a l l y a s d e
0043300 s c r i b e d i n C L t L .
0043320 \r d e b u g c o n d i t i o n
0043340 \t [ F u n c t i o n ] \r E n t e
0043360 r s t h e d e b u g g e r
0043400 w i t h a g i v e n c o n
0043420 d i t i o n . [ W h e n t h
0043440 e d e b u g g e r i s e n
0043460 t e r e d , i t w i l l a
0043500 n n o u n c e t h e c o n d
0043520 i t i o n b y i n v o k i n
0043540 g t h e c o n d i t i o n '
0043560 s r e p o r t f u n c t i o
0043600 n . - A M D ] \r T h i s f u
0043620 n c t i o n w i l l n e v
0043640 e r d i r e c t l y r e t u
0043660 r n t o i t s c a l l e r
0043700 . R e t u r n c a n o c c
0043720 u r o n l y b y a s p e
0043740 c i a l t r a n s f e r o f
0043760 c o n t r o l , s u c h a
0044000 s t o a p r o c e e d - c
0044020 a s e o r c a t c h - a b o
0044040 r t . \r b r e a k d a t u m
0044060 & r e s t a r g u m e n t s \t
0044100 [ F u n c t i o n ] \r D i r e c
0044120 t l y e n t e r s t h e d
0044140 e b u g g e r w i t h o u t
0044160 t r y i n g t o i n v o k e
0044200 t h e s i g n a l f a c i
0044220 l i t y . [ b r e a k e n a
0044240 b l e s t h e p r o c e e d
0044260 t y p e p r o c e e d . -
0044300 A M D ] E x e c u t i n g t
0044320 h e f u n c t i o n p r o c
0044340 e e d w h i l e i n t h e
0044360 d e b u g g e r w i l l c
0044400 a u s e a r e t u r n f r
0044420 o m t h e b r e a k . \r I f
0044440 d a t u m i s a c o n d
0044460 i t i o n , t h e n t h a t
0044500 c o n d i t i o n i s u s
0044520 e d d i r e c t l y . I n
0044540 t h i s c a s e , i t i s
0044560 a n e r r o r f o r a r
0044600 g u m e n t s t o b e n o
0044620 n - N I L . \r I f d a t u m
0044640 i s a c o n d i t i o n t
0044660 y p e , t h e n t h e c o
0044700 n d i t i o n u s e d i s
0044720 t h e r e s u l t o f d o
0044740 i n g ( a p p l y # ' m a k
0044760 e - c o n d i t i o n d a t u
0045000 m a r g u m e n t s ) . \r I f
0045020 d a t u m i s a s t r i
0045040 n g , t h e n t h e c o n
0045060 d i t i o n u s e d i s t
0045100 h e r e s u l t o f d o i
0045120 n g ( m a k e - c o n d i t i
0045140 o n ' s i m p l e - b r e a k
0045160 : f o r m a t - s t r i n g
0045200 d a t u m : f o r m a t - a r
0045220 g u m e n t s a r g u m e n t
0045240 s ) . [ T h i s i s p r o
0045260 b a b l y t h e o n l y t
0045300 i m e t h a t s i m p l e -
0045320 b r e a k i s e v e r u s
0045340 e d . - A M D ] \r I f t h e
0045360 b r e a k i s p r o c e e d
0045400 e d , t h e v a l u e r e
0045420 t u r n e d i s t h e c o
0045440 n d i t i o n t h a t w a s
0045460 u s e d . \r I m p l e m e n t
0045500 a t i o n N o t e : b r e a
0045520 k c o u l d b e d e f i n
0045540 e d b y : \r ( d e f u n b r
0045560 e a k ( d a t u m & r e s t
0045600 a r g u m e n t s ) \r ( p
0045620 r o c e e d - c a s e \r
0045640 ( d e b u g ( c o n d ( ( t
0045660 y p e p d a t u m ' c o n d
0045700 i t i o n ) d a t u m ) \r
0045720 (
0045740 ( s y m b o l p d a t u m )
0045760 ; r o u g h l y , ( s u b t y
0046000 p e p d a t u m ' c o n d i
0046020 t i o n ) \r
0046040 ( a p p l y #
0046060 ' m a k e - c o n d i t i o n
0046100 d a t u m a r g u m e n t s )
0046120 ) \r
0046140 ( ( s t r i n g p d a t
0046160 u m ) \r
0046200 ( m a k e - c o n d
0046220 i t i o n ' s i m p l e - b r
0046240 e a k \r
0046260 : f o r m a t -
0046300 s t r i n g d a t u m : f o
0046320 r m a t - a r g u m e n t s a
0046340 r g u m e n t s ) ) \r
0046360 ( t (
0046400 e r r o r " B a d a r g u m
0046420 e n t t o B R E A K : ~ S
0046440 " d a t u m ) ) ) ) \r
0046460 ( p r o c e e d ( c o n d i t
0046500 i o n ) : t e s t ( l a m b
0046520 d a ( i g n o r e ) t ) \r
0046540 : r e p o r t " R e
0046560 t u r n f r o m B R E A K .
0046600 " c o n d i t i o n ) ) ) \r S
0046620 e e F o o t n o t e : { t r
0046640 u e } \r P r o c e e d i n g f
0046660 r o m C o n d i t i o n s \r p
0046700 r o c e e d - c a s e f o r m
0046720 & r e s t c l a u s e s \t [
0046740 S p e c i a l F o r m ] \r T h
0046760 e f o r m i s e v a l u a
0047000 t e d i n a d y n a m i c
0047020 c o n t e x t w h e r e t
0047040 h e c l a u s e s h a v e
0047060 s p e c i a l m e a n i n g s
0047100 a s p o i n t s t o w h
0047120 i c h c o n t r o l m a y
0047140 b e t r a n s f e r r e d i
0047160 n t h e e v e n t t h a t
0047200 a c o n d i t i o n i s
0047220 s i g n a l l e d . I f f o
0047240 r m r u n s t o c o m p l
0047260 e t i o n a n d r e t u r n
0047300 s a n y v a l u e s , a l
0047320 l v a l u e s r e t u r n e
0047340 d b y t h e f o r m a r
0047360 e s i m p l y r e t u r n e
0047400 d b y t h e p r o c e e d
0047420 - c a s e f o r m . I f a
0047440 c o n d i t i o n i s s i
0047460 g n a l l e d w h i l e f o
0047500 r m i s r u n n i n g , a
0047520 h a n d l e r m a y t r a
0047540 n f e r c o n t r o l t o
0047560 o n e o f t h e c l a u s
0047600 e s . [ T h e s t a c k i
0047620 s u n w o u n d t o t h a
0047640 t p o i n t : c f . c o n
0047660 d i t i o n - c a s e - A M D
0047700 ] I f a t r a n s f e r
0047720 t o a c l a u s e o c c u
0047740 r s , t h e f o r m s i n
0047760 t h e b o d y o f t h a
0050000 t c l a u s e w i l l b e
0050020 e v a l u a t e d a n d a
0050040 n y v a l u e s r e t u r n
0050060 e d b y t h e l a s t s
0050100 u c h f o r m w i l l b e
0050120 r e t u r n e d b y t h e
0050140 p r o c e e d - c a s e f o
0050160 r m . [ p r o c e e d - c a s
0050200 e d e f i n e s a p o i n
0050220 t f r o m w h i c h i t
0050240 i s p o s s i b l e t o p
0050260 r o c e e d a n d e n a b l
0050300 e s w a y s t o p r o c e
0050320 e d . - A M D ] \r A p r o c
0050340 e e d - c a s e c l a u s e
0050360 h a s t h e f o r m : ( p
0050400 r o c e e d - f u n c t i o n -
0050420 n a m e a r g l i s t [ k e
0050440 y w o r d v a l u e ] * [ b
0050460 o d y - f o r m ] * ) \r T h e
0050500 p r o c e e d - f u n c t i o n
0050520 - n a m e m a y b e n i l
0050540 o r t h e n a m e o f
0050560 a d e f i n e d p r o c e e
0050600 d f u n c t i o n . \r T h e
0050620 a r g l i s t i s a l i s
0050640 t o f v a r i a b l e s t
0050660 o b e b o u n d d u r i n
0050700 g t h e e x e c u t i o n
0050720 o f t h e b o d y - f o r m
0050740 s . T h e f i r s t v a r
0050760 i a b l e w i l l b e t h
0051000 e c o n d i t i o n , a n d
0051020 t h e r e m a i n i n g w
0051040 i l l b e a d d i t i o n a
0051060 l d a t a p r o v i d e d
0051100 b y t h e p r o c e e d f
0051120 u n c t i o n . B y s p e c
0051140 i a l e x e m p t i o n , t
0051160 h e a r g l i s t m a y b
0051200 e ( ) i f y o u d o n '
0051220 t c a r e a b o u t a n y
0051240 o f t h e a r g u m e n t
0051260 s ; o t h e r w i s e , t h
0051300 e a r g u m e n t l i s t
0051320 m u s t b e c o m p a t i b
0051340 l e w i t h t h e a r g u
0051360 m e n t s a s p a s s e d
0051400 b y i n v o k e - p r o c e e
0051420 d - c a s e . I f a p r o
0051440 c e e d - f u n c t i o n - n a
0051460 m e w a s s u p p l i e d ,
0051500 t h e n t h e a r g u m e
0051520 n t s i n t h e a r g l i
0051540 s t n e e d n o t b e o
0051560 p t i o n a l , s i n c e t
0051600 h e p r o c e e d - f u n c t
0051620 i o n w i l l h a v e t a
0051640 k e n c a r e o f f i l l
0051660 i n g i n a l l o p t i o
0051700 n a l a r g u m e n t s a n
0051720 d a f i x e d n u m b e r
0051740 o f a r g u m e n t s w i
0051760 l l a l w a y s b e p a s
0052000 s e d t o i n v o k e - p r
0052020 o c e e d - c a s e . [ I t
0052040 b o t h e r s m e t o h a
0052060 v e t o s e p a r a t e l y
0052100 d e f i n e a p r o c e e
0052120 d f u n c t i o n t o b e
0052140 a b l e t o u s e a n
0052160 a m e d p r o c e e d c a s
0052200 e . S e e m s t o m e t
0052220 h a t y o u s h o u l d b
0052240 e a b l e t o p u t a
0052260 n a m e i n a n y w a y ,
0052300 a n d i f t h e r e h a p
0052320 p e n s t o b e a p r o
0052340 c e e d f u n c t i o n a r
0052360 o u n d t h a t w i l l c
0052400 o l l e c t a r g u m e n t s
0052420 f o r y o u , s o m u c
0052440 h t h e b e t t e r . T h
0052460 i s i s e s p e c i a l l y
0052500 t r u e s i n c e n a m e
0052520 d p r o c e e d c a s e s
0052540 a r e t h e o n l y o n e
0052560 s t h a t m a y b e i n
0052600 v o k e d n o n - i n t e r a
0052620 c t i v e l y . - A M D ] \r T
0052640 h e v a l i d k e y w o r d
0052660 / v a l u e p a i r s a r e
0052700 : \r : t e s t f u n c t i o n
0052720 \r A f u n c t i o n o f o
0052740 n e a r g u m e n t , t h e
0052760 c o n d i t i o n , w h i c
0053000 h m u s t r e t u r n t r
0053020 u e f o r t h i s c a s e
0053040 t o b e v i s i b l e t
0053060 o h a n d l e r s . T h e
0053100 f u n c t i o n s h o u l d
0053120 b e i n a f o r m w h i
0053140 c h i s a c c e p t a b l e
0053160 a s a n a r g u m e n t
0053200 t o t h e f u n c t i o n
0053220 s p e c i a l f o r m . \r : c
0053240 o n d i t i o n t y p e \r S h
0053260 o r t h a n d f o r t h e
0053300 c o m m o n s p e c i a l c
0053320 a s e o f : t e s t i n
0053340 w h i c h t h e u s e r i
0053360 s d o i n g a t e s t o
0053400 f t h e g i v e n t y p e
0053420 o f c o n d i t i o n b e
0053440 i n g s i g n a l l e d t o
0053460 d e t e r m i n e i t s v
0053500 i s i b i l i t y . T h e f
0053520 o l l o w i n g t w o k e y
0053540 / v a l u e p a i r s a r e
0053560 e q u i v a l e n t : \r : c o
0053600 n d i t i o n f o o \r : t e s
0053620 t ( l a m b d a ( c ) ( t
0053640 y p e p c ' f o o ) ) \r : r
0053660 e p o r t - f u n c t i o n e
0053700 x p \r T h e e x p m u s t
0053720 b e a n a p p r o p r i a t
0053740 e a r g u m e n t t o t h
0053760 e f u n c t i o n s p e c i
0054000 a l f o r m , a n d s h o
0054020 u l d d e s i g n a t e a
0054040 f u n c t i o n o f t w o
0054060 a r g u m e n t s , a p r o
0054100 c e e d c a s e a n d a
0054120 s t r e a m , w h i c h s u
0054140 m m a r i z e s t h e a c t
0054160 i o n t h a t t h i s p r
0054200 o c e e d c a s e w i l l
0054220 t a k e . \r : r e p o r t f o
0054240 r m \r T h i s i s a s h o
0054260 r t h a n d f o r t w o i
0054300 m p o r t a n t s p e c i a l
0054320 c a s e s o f : r e p o r
0054340 t - f u n c t i o n . I f f
0054360 o r m i s a c o n s t a n
0054400 t s t r i n g , t h e n t
0054420 h i s i s t h e s a m e
0054440 a s : : r e p o r t - f u n c
0054460 t i o n ( l a m b d a ( i g
0054500 n o r e s t r e a m ) ( w r
0054520 i t e - s t r i n g f o r m
0054540 s t r e a m ) ) . O t h e r w
0054560 i s e , t h i s i s t h e
0054600 s a m e a s : r e p o r t
0054620 - f u n c t i o n ( l a m b d
0054640 a ( c o n d i t i o n * s t
0054660 a n d a r d - o u t p u t * )
0054700 f o r m ) . I n t h e l a
0054720 t t e r c a s e , f o r m
0054740 m u s t d o o u t p u t t
0054760 o * s t a n d a r d - o u t p
0055000 u t * , s u m m a r i z i n g
0055020 t h e a c t i o n t h a t
0055040 t h i s p r o c e e d c a
0055060 s e w i l l t a k e . [ S
0055100 e e t h e e x p l a n a t i
0055120 o n u n d e r d e f i n e -
0055140 c o n d i t i o n . - A M D ]
0055160 \r O n l y o n e o f : t e
0055200 s t o r : c o n d i t i o n
0055220 m a y b e s p e c i f i e
0055240 d . O n l y o n e o f :
0055260 r e p o r t o r : r e p o r
0055300 t - f u n c t i o n m a y b
0055320 e s p e c i f i e d . \r I f
0055340 a n a m e d p r o c e e d
0055360 f u n c t i o n h a s a d
0055400 e f a u l t f o r a n y o
0055420 f : t e s t o r : c o n d
0055440 i t i o n a n d t h e p r
0055460 o c e e d c a s e s p e c i
0055500 f i e s a n y o f : t e s
0055520 t o r : c o n d i t i o n ,
0055540 t h e n t h e i n f o r m
0055560 a t i o n s u p p l i e d i
0055600 n t h e p r o c e e d c a
0055620 s e t a k e s p r e c e d e
0055640 n c e . S i m i l a r l y ,
0055660 i f : r e p o r t o r : r
0055700 e p o r t - f u n c t i o n i
0055720 s s p e c i f i e d i n t
0055740 h e p r o c e e d c a s e ,
0055760 t h e n o n l y t h a t
0056000 i n f o r m a t i o n i s c
0056020 o n s i d e r e d , a n d a
0056040 n y : r e p o r t o r : r
0056060 e p o r t - f u n c t i o n s
0056100 p e c i f i e d a s a d e
0056120 f a u l t f o r t h e n a
0056140 m e d p r o c e e d f u n c
0056160 t i o n i s n o t u s e d
0056200 . \r I f a n a m e d p r o
0056220 c e e d f u n c t i o n i s
0056240 u s e d b u t n o r e p
0056260 o r t i n f o r m a t i o n
0056300 i s s u p p l i e d , t h e
0056320 n a m e o f t h e p r o
0056340 c e e d f u n c t i o n i s
0056360 u s e d t o g e n e r a t
0056400 e t h e d e f a u l t h e
0056420 l p i n f o r m a t i o n .
0056440 I t i s a n e r r o r i
0056460 f n o n a m e d p r o c e
0056500 e d c a s e i s u s e d
0056520 a n d n o r e p o r t i n
0056540 f o r m a t i o n i s p r o
0056560 v i d e d ; i m p l e m e n t
0056600 a t i o n s a r e e n c o u
0056620 r a g e d t o f l a g t h
0056640 i s e r r o r a t t h e
0056660 e a r l i e s t c o n v e n i
0056700 e n t t i m e ( e g , c o
0056720 m p i l a t i o n t i m e ) .
0056740 [ I n p l a i n E n g l i
0056760 s h , t h i s m e a n s t
0057000 h a t y o u m u s t a l w
0057020 a y s h a v e a w a y o
0057040 f d e s c r i b i n g t o
0057060 t h e u s e r h o w t o
0057100 p r o c e e d . I f y o u
0057120 d o n ' t s p e c i f y r e
0057140 p o r t m e t h o d s , m a
0057160 k e s u r e t h a t t h e
0057200 n a m e o f t h e p r o
0057220 c e e d t y p e i s s o m
0057240 e t h i n g s e n s i b l e .
0057260 - A M D ] \r W h e n * p r i
0057300 n t - e s c a p e * i s n i
0057320 l , t h e p r i n t e r w
0057340 i l l u s e t h e r e p o
0057360 r t i n f o r m a t i o n f
0057400 o r a p r o c e e d c a s
0057420 e . E . g . , a d e b u g
0057440 g e r m i g h t a n n o u n
0057460 c e t h e a c t i o n o f
0057500 t y p i n g C o n t r o l -
0057520 Z b y d o i n g : \r ( f o r
0057540 m a t t " ~ & C o n t r o l
0057560 - Z : ~ A ~ % " s o m e - p
0057600 r o c e e d - c a s e ) \r w h i
0057620 c h w o u l d t h e n d i
0057640 s p l a y a s s o m e t h i
0057660 n g l i k e : \r C o n t r o l
0057700 - Z : R e t u r n t o c o
0057720 m m a n d l e v e l . \r E x a
0057740 m p l e s : \r ( p r o c e e d -
0057760 c a s e ( a - r a n d o m - c
0060000 o m p u t a t i o n ) \r ( n
0060020 e w - f u n c t i o n ( i g n
0060040 o r e n e w - f u n c t i o n
0060060 ) ( s e t q f u n c t i o n
0060100 n e w - f u n c t i o n ) ) )
0060120 \r ( p r o c e e d - c a s e (
0060140 a - r a n d o m - c o m p u t a
0060160 t i o n ) \r ( n i l ( i g
0060200 n o r e & o p t i o n a l (
0060220 n e w - f u n c t i o n ( r e
0060240 a d - t y p e d - o b j e c t
0060260 ' f u n c t i o n " F u n c t
0060300 i o n : " ) ) ) \r : r
0060320 e p o r t " U s e a d i f
0060340 f e r e n t f u n c t i o n .
0060360 " \r : c o n d i t i o n
0060400 u n d e f i n e d - f u n c t
0060420 i o n \r ( s e t q f u
0060440 n c t i o n n e w - f u n c t
0060460 i o n ) ) ) \r ( p r o c e e d -
0060500 c a s e ( a - c o m m a n d -
0060520 l o o p ) \r ( r e t u r n -
0060540 f r o m - c o m m a n d - l e v
0060560 e l ( ) \r : r e p o r
0060600 t ( f o r m a t t " R e t
0060620 u r n f r o m c o m m a n d
0060640 l e v e l ~ D . " l e v e
0060660 l ) \r n i l ) ) \r ( l o
0060700 o p ( p r o c e e d - c a s e
0060720 ( a n o t h e r - r a n d o m
0060740 - c o m p u t a t i o n ) ( p
0060760 r o c e e d ( ) ) ) ) \r A s s
0061000 u m i n g t h a t n e w - f
0061020 u n c t i o n i s d e f i n
0061040 e d a s a p r o c e e d
0061060 f u n c t i o n w i t h d e
0061100 f a u l t s : \r : r e p
0061120 o r t " U s e a d i f f e
0061140 r e n t f u n c t i o n . " \r
0061160 : c o n d i t i o n u
0061200 n d e f i n e d - f u n c t i o
0061220 n \r t h e n t h e f i r s t
0061240 a n d s e c o n d e x a m
0061260 p l e s a r e e q u i v a l
0061300 e n t f r o m t h e p o i
0061320 n t o f v i e w o f s o
0061340 m e o n e u s i n g t h e
0061360 i n t e r a c t i v e d e b u
0061400 g g e r , b u t d i f f e r
0061420 i n o n e i m p o r t a n
0061440 t a s p e c t f o r n o n
0061460 - i n t e r a c t i v e h a n
0061500 d l i n g . I f a h a n d
0061520 l e r " k n o w s a b o u t
0061540 " p r o c e e d f u n c t i
0061560 o n n a m e s , a s i n :
0061600 ( w h e n ( f i n d - p r o
0061620 c e e d - c a s e ' n e w - f
0061640 u n c t i o n c o n d i t i o
0061660 n ) ( n e w - f u n c t i o n
0061700 c o n d i t i o n t h e - r
0061720 e p l a c e m e n t ) ) t h e
0061740 n o n l y t h e f i r s t
0061760 e x a m p l e , a n d n o
0062000 t t h e s e c o n d , w i
0062020 l l h a v e c o n t r o l
0062040 t r a n s f e r r e d t o i
0062060 t s c o r r e c t i o n c l
0062100 a u s e . \r H e r e ' s a m
0062120 o r e c o m p l e t e [ t h
0062140 o u g h c o n t r i v e d -
0062160 A M D ] e x a m p l e : \r ( l
0062200 e t ( ( m y - f o o d ' m i
0062220 l k ) ( m y - c o l o r ' g
0062240 r e e n i s h - b l u e ) ) \r
0062260 ( d o ( ) ( ( n o t ( b
0062300 a d - f o o d - c o l o r - p
0062320 f o o d c o l o r ) ) ) \r
0062340 ( p r o c e e d - c a s e
0062360 ( e r r o r ' b a d - f o o d
0062400 - c o l o r : f o o d m y -
0062420 f o o d : c o l o r m y - c
0062440 o l o r ) \r ( u s e
0062460 - f o o d ( i g n o r e n
0062500 e w - f o o d ) ( s e t f m
0062520 y - f o o d n e w - f o o d )
0062540 ) \r ( u s e - c o l
0062560 o r ( i g n o r e n e w - c
0062600 o l o r ) ( s e t f m y - c
0062620 o l o r n e w - c o l o r ) )
0062640 ) ) \r ; ; W e w o n ' t
0062660 g e t t o h e r e u n t
0062700 i l m y - f o o d a n d m
0062720 y - c o l o r a r e c o m p
0062740 a t i b l e . \r ( l i s t
0062760 m y - f o o d m y - c o l o r
0063000 ) ) \r A h a n d l e r c a n
0063020 t h e n p r o c e e d t h
0063040 e e r r o r i n e i t h e
0063060 r o f t w o w a y s . I
0063100 t m a y c o r r e c t t h
0063120 e c o l o r o r c o r r e
0063140 c t t h e f o o d . F o r
0063160 e x a m p l e : \r # ' ( l a m
0063200 b d a ( c o n d i t i o n )
0063220 . . . ( u s e - c o l o r c
0063240 o n d i t i o n ' w h i t e )
0063260 . . . ) ; C o r r e c t s
0063300 c o l o r \r o r # ' ( l a m
0063320 b d a ( c o n d i t i o n )
0063340 . . . ( u s e - f o o d c o
0063360 n d i t i o n ' c h e e s e )
0063400 . . . ) ; C o r r e c t s
0063420 f o o d \r H e r e i s a n
0063440 e x a m p l e u s i n g c o
0063460 n d i t i o n - b i n d a n d
0063500 p r o c e e d - c a s e . . .
0063520 \r ( c o n d i t i o n - b i n d
0063540 ( ( f o o - e r r o r # ' (
0063560 l a m b d a ( c o n d i t i o
0063600 n ) ( u s e - v a l u e c o
0063620 n d i t i o n 7 ) ) ) ) \r
0063640 ( p r o c e e d - c a s e ( e
0063660 r r o r ' f o o - e r r o r )
0063700 ( u s e - v a l u e ( i g n
0063720 o r e x ) ( * x x ) ) )
0063740 ) = > 4 9 \r d e f i n e - p
0063760 r o c e e d - f u n c t i o n
0064000 n a m e [ k e y w o r d v a
0064020 l u e ] * & r e s t v a r i
0064040 a b l e s \t [ S p e c i a l F
0064060 o r m ] \r V a l i d k e y w o
0064100 r d / v a l u e p a i r s a
0064120 r e t h e s a m e a s t
0064140 h o s e w h i c h a r e d
0064160 e f i n e d f o r t h e p
0064200 r o c e e d - c a s e s p e c
0064220 i a l f o r m . T h a t i
0064240 s , : t e s t , : c o n d i
0064260 t i o n , : r e p o r t - f u
0064300 n c t i o n , a n d : r e p
0064320 o r t . \r T h i s f o r m d
0064340 e f i n e s a f u n c t i o
0064360 n c a l l e d n a m e w h
0064400 i c h w i l l p r o c e e d
0064420 a n e r r o r i n a t
0064440 y p e d w a y . T h e p r
0064460 o c e e d f u n c t i o n t
0064500 a k e s a r e q u i r e d
0064520 a r g u m e n t o f a c o
0064540 n d i t i o n a n d o p t i
0064560 o n a l a r g u m e n t s w
0064600 h i c h a r e g i v e n b
0064620 y t h e v a r i a b l e s
0064640 s p e c i f i c a t i o n . T
0064660 h e v a r i a b l e c o n d
0064700 i t i o n i s b o u n d t
0064720 o t h e c o n d i t i o n
0064740 o b j e c t i t s e l f s o
0064760 t h a t i t w i l l b e
0065000 a c c e s s i b l e d u r i
0065020 n g t h e i n i t i a l i z
0065040 a t i o n o f t h e o p t
0065060 i o n a l a r g u m e n t s .
0065100 [ I . e . , t h e p a r a
0065120 m e t e r l i s t f o r t
0065140 h e p r o c e e d f u n c t
0065160 i o n w i l l l o o k l i
0065200 k e ( & o p t i o n a l c o
0065220 n d i t i o n . v a r i a b
0065240 l e s ) . T h e o n l y t
0065260 h i n g t h a t a p r o c
0065300 e e d f u n c t i o n r e a
0065320 l l y d o e s i s c o l l
0065340 e c t v a l u e s t o b e
0065360 p a s s e d o n t o a
0065400 p r o c e e d - c a s e c l a
0065420 u s e . - A M D ] \r E a c h
0065440 e l e m e n t o f v a r i a
0065460 b l e s h a s t h e f o r
0065500 m v a r i a b l e - n a m e
0065520 o r ( v a r i a b l e - n a m
0065540 e i n i t i a l - v a l u e )
0065560 . I f i n i t i a l - v a l
0065600 u e i s n o t s u p p l i
0065620 e d , i t d e f a u l t s
0065640 t o n i l . [ U n l i k e
0065660 s t a n d a r d & o p t i o n
0065700 a l p a r a m e t e r s , t
0065720 h i s d o e s n o t p r o
0065740 v i d e f o r a s u p p l
0065760 i e d - p p a r a m e t e r .
0066000 A d d i n g t h i s i s
0066020 n o t p a r t i c u l a r l y
0066040 u s e f u l s i n c e t h
0066060 e r e ' s n o w a y t o
0066100 a c c e s s i t u n l e s s
0066120 i t h a s b e e n p r o
0066140 c l a i m e d s p e c i a l .
0066160 - A M D ] \r F o r e x a m p
0066200 l e , h e r e a r e s o m
0066220 e p o s s i b l e p r o c e
0066240 e d f u n c t i o n s w h i
0066260 c h m i g h t b e u s e f
0066300 u l i n c o n j u n c t i o
0066320 n w i t h t h e b a d - f
0066340 o o d - c o l o r e r r o r
0066360 w e u s e d a s a n e x
0066400 a m p l e e a r l i e r : \r (
0066420 d e f i n e - p r o c e e d - f
0066440 u n c t i o n u s e - f o o d
0066460 : r e p o r t " U s e a n
0066500 o t h e r f o o d . " \r (
0066520 f o o d ( r e a d - t y p e d
0066540 - o b j e c t ' f o o d " F
0066560 o o d t o u s e i n s t e
0066600 a d : " ) ) ) \r ( d e f i n e
0066620 - p r o c e e d - f u n c t i o
0066640 n u s e - c o l o r : r e p
0066660 o r t " C h a n g e t h e
0066700 f o o d ' s c o l o r . " \r
0066720 ( c o l o r ( r e a d - t y
0066740 p e d - o b j e c t ' f o o d
0066760 " C o l o r t o m a k e
0067000 t h e f o o d : " ) ) ) \r (
0067020 d e f u n m a y b e - u s e -
0067040 w a t e r ( c o n d i t i o n
0067060 ) ; A s a m p l e h a n d
0067100 l e r \r ( w h e n ( e q
0067120 ( b a d - f o o d - c o l o r -
0067140 f o o d c o n d i t i o n )
0067160 ' m i l k ) ( u s e - f o o d
0067200 c o n d i t i o n ' w a t e
0067220 r ) ) ) \r ( c o n d i t i o n -
0067240 b i n d ( ( b a d - f o o d -
0067260 c o l o r # ' m a y b e - u s
0067300 e - w a t e r ) ) . . . ) \r T
0067320 h e c o n d i t i o n a r g
0067340 u m e n t t o a p r o c e
0067360 e d f u n c t i o n i s o
0067400 p t i o n a l . I f n o t
0067420 p r o v i d e d , i t d e f
0067440 a u l t s t o n i l . T h
0067460 i s m a y b e u s e f u l
0067500 i n t h e i m p l e m e n
0067520 t a t i o n o f p r o c e e
0067540 d f u n c t i o n s s u c h
0067560 a s a b o r t , w h i c h
0067600 a r e n o t n o r m a l l
0067620 y c a l l e d w i t h a
0067640 c o n d i t i o n a r g u m e
0067660 n t . \r I f a n a m e d p
0067700 r o c e e d f u n c t i o n
0067720 i s i n v o k e d i n a
0067740 c o n t e x t i n w h i c h
0067760 t h e r e i s n o a c t
0070000 i v e p r o c e e d c a s e
0070020 b y t h a t n a m e , t
0070040 h e p r o c e e d f u n c t
0070060 i o n s i m p l y r e t u r
0070100 n s n i l . S o , f o r
0070120 e x a m p l e , i n e a c h
0070140 o f t h e f o l l o w i n
0070160 g p a i r s o f h a n d l
0070200 e r s , t h e f i r s t i
0070220 s e q u i v a l e n t t o
0070240 t h e s e c o n d a n d l
0070260 e s s e f f i c i e n t : \r #
0070300 ' ( l a m b d a ( c o n d i t
0070320 i o n ) ; O K , b u t s l
0070340 o w \r ( w h e n ( f i
0070360 n d - p r o c e e d - c a s e
0070400 ' u s e - f o o d c o n d i t
0070420 i o n ) ( u s e - f o o d c
0070440 o n d i t i o n ' m i l k ) )
0070460 ) \r # ' ( l a m b d a ( c o n
0070500 d i t i o n ) ( u s e - f o o
0070520 d c o n d i t i o n ' m i l
0070540 k ) ) ; P r e f e r r e d \r #
0070560 ' ( l a m b d a ( c o n d i t
0070600 i o n ) \r ( c o n d (
0070620 ( f i n d - p r o c e e d - c a
0070640 s e ' u s e - f o o d c o n
0070660 d i t i o n ) ( u s e - f o o
0070700 d c o n d i t i o n ' c h o
0070720 c o l a t e ) ) \r
0070740 ( ( f i n d - p r o c e e
0070760 d - c a s e ' u s e - c o l o
0071000 r c o n d i t i o n ) ( u s
0071020 e - c o l o r c o n d i t i o
0071040 n ' o r a n g e ) ) ) ) \r # '
0071060 ( l a m b d a ( c o n d i t i
0071100 o n ) ( u s e - f o o d c o
0071120 n d i t i o n ' c h o c o l a
0071140 t e ) ( u s e - c o l o r c
0071160 o n d i t i o n ' o r a n g e
0071200 ) ) \r c o m p u t e - p r o c
0071220 e e d - c a s e s c o n d i t
0071240 i o n \t [ F u n c t i o n ] \r U
0071260 s e s t h e d y n a m i c
0071300 s t a t e o f t h e p r o
0071320 g r a m t o c o m p u t e
0071340 a l i s t o f p r o c e e
0071360 d c a s e s w h i c h m a
0071400 y b e u s e d w i t h t
0071420 h e g i v e n c o n d i t i
0071440 o n . \r E a c h p r o c e e d
0071460 c a s e r e p r e s e n t s
0071500 a p o i n t i n t h e
0071520 c u r r e n t d y n a m i c
0071540 s t a t e o f t h e p r o
0071560 g r a m t o w h i c h c o
0071600 n t r o l m a y b e t r a
0071620 n s f e r r e d . I m p l e m
0071640 e n t a t i o n s a r e f r
0071660 e e t o i m p l e m e n t
0071700 t h e s e o b j e c t s i n
0071720 w h a t e v e r m a n n e r
0071740 i s m o s t c o n v e n i
0071760 e n t ; t h e o b j e c t s
0072000 n e e d h a v e o n l y
0072020 d y n a m i c e x t e n t .
0072040 T h e o n l y o p e r a t i
0072060 o n s w h i c h C o m m o n
0072100 L i s p d e f i n e s f o
0072120 r s u c h o b j e c t s a
0072140 r e p r o c e e d - c a s e -
0072160 n a m e , f i n d - p r o c e
0072200 e d - c a s e , i n v o k e -
0072220 p r o c e e d - c a s e , p r
0072240 i n c a n d p r i n t , t
0072260 h e i d e n t i f i c a t i o
0072300 n o f a n o b j e c t a
0072320 s a p r o c e e d c a s e
0072340 u s i n g ( t y p e p x
0072360 ' p r o c e e d - c a s e ) ,
0072400 a n d s t a n d a r d l i s
0072420 p o p e r a t i o n s w h i
0072440 c h w o r k f o r a l l
0072460 o b j e c t s s u c h a s
0072500 e q , e q l , d e s c r i b
0072520 e , e t c . \r T h e l i s t
0072540 w h i c h r e s u l t s f
0072560 r o m a c a l l t o c o
0072600 m p u t e - p r o c e e d - c a
0072620 s e s i s o r d e r e d s
0072640 o t h a t t h e i n n e r
0072660 m o s t ( i e , m o r e - r
0072700 e c e n t l y e s t a b l i s
0072720 h e d ) p r o c e e d c a s
0072740 e s a r e n e a r e r t h
0072760 e h e a d o f t h e l i
0073000 s t . \r N o t e , t o o , t
0073020 h a t c o m p u t e - p r o c
0073040 e e d - c a s e s r e t u r n
0073060 s a l l v a l i d p r o c
0073100 e e d c a s e s f o r c o
0073120 n d i t i o n , e v e n i f
0073140 s o m e o f t h e m h a
0073160 v e t h e s a m e n a m e
0073200 a s o t h e r s a n d t
0073220 h e r e f o r e w o u l d n
0073240 o t b e f o u n d b y f
0073260 i n d - p r o c e e d - c a s e
0073300 . \r I m p l e m e n t a t i o n
0073320 s a r e p e r m i t t e d ,
0073340 b u t n o t r e q u i r e
0073360 d , t o r e t u r n d i f
0073400 f e r e n t ( i e , n o n -
0073420 e q ) l i s t s f r o m r
0073440 e p e a t e d c a l l s t o
0073460 c o m p u t e - p r o c e e d
0073500 - c a s e s w h i l e i n
0073520 t h e s a m e l e x i c a l
0073540 / d y n a m i c e n v i r o n
0073560 m e n t . I t i s a n e
0073600 r r o r t o m o d i f y t
0073620 h e l i s t w h i c h i s
0073640 r e t u r n e d b y c o m
0073660 p u t e - p r o c e e d - c a s
0073700 e s . \r p r o c e e d - c a s e
0073720 - n a m e p r o c e e d - c a
0073740 s e \t [ F u n c t i o n ] \r R e
0073760 t u r n s t h e n a m e o
0074000 f t h e g i v e n p r o c
0074020 e e d - c a s e , o r n i l
0074040 i f i t i s n o t n a
0074060 m e d . \r f i n d - p r o c e e
0074100 d - c a s e n a m e c o n d
0074120 i t i o n \t [ F u n c t i o n ]
0074140 \r S e a r c h e s f o r a
0074160 p r o c e e d c a s e b y
0074200 t h e g i v e n n a m e w
0074220 h i c h i s a p p l i c a b
0074240 l e t o t h e g i v e n
0074260 c o n d i t i o n i n t h e
0074300 c u r r e n t d y n a m i c
0074320 c o n t o u r . \r I f n a m
0074340 e i s a p r o c e e d f
0074360 u n c t i o n n a m e , t h
0074400 e n t h e i n n e r m o s t
0074420 ( i e , m o s t r e c e n
0074440 t l y e s t a b l i s h e d )
0074460 p r o c e e d c a s e w i
0074500 t h t h a t f u n c t i o n
0074520 n a m e t h a t m a t c h
0074540 e s t h e g i v e n c o n
0074560 d i t i o n i s r e t u r n
0074600 e d . n i l i s r e t u r
0074620 n e d i f n o s u c h p
0074640 r o c e e d c a s e i s f
0074660 o u n d . \r I f n a m e i s
0074700 a p r o c e e d c a s e
0074720 o b j e c t , t h e n i t
0074740 i s s i m p l y r e t u r n
0074760 e d u n l e s s i t i s
0075000 n o t c u r r e n t l y v a
0075020 l i d f o r u s e . I n
0075040 t h a t c a s e , n i l i
0075060 s r e t u r n e d . \r i n v o
0075100 k e - p r o c e e d - c a s e
0075120 p r o c e e d - c a s e c o n
0075140 d i t i o n & r e s t v a l
0075160 u e s \t [ F u n c t i o n ] \r T
0075200 r a n s f e r s c o n t r o l
0075220 t o t h e g i v e n p r
0075240 o c e e d - c a s e , p a s s
0075260 i n g t h e g i v e n v a
0075300 l u e s . T h e p r o c e e
0075320 d - c a s e m u s t a p r
0075340 o c e e d c a s e o r t h
0075360 e n a m e o f a p r o c
0075400 e e d f u n c t i o n w h i
0075420 c h i s v a l i d i n t
0075440 h e c u r r e n t d y n a m
0075460 i c c o n t e x t . I f t
0075500 h e a r g u m e n t i s n
0075520 o t v a l i d , a n e r r
0075540 o r w i l l b e s i g n a
0075560 l l e d . [ W h a t t y p e
0075600 ? - A M D ] \r T h i s o p e
0075620 r a t i o n i s u s e d p
0075640 r i m a r i l y a s a s u
0075660 b - p r i m i t i v e f o r
0075700 i m p l e m e n t i n g n a m
0075720 e d p r o c e e d f u n c t
0075740 i o n s , b u t m a y b e
0075760 n e c e s s a r y w h e n
0076000 w r i t i n g c e r t a i n
0076020 k i n d s o f p o r t a b l
0076040 e , i n t e r a c t i v e d
0076060 e b u g g e r s . S e e F o
0076100 o t n o t e : { i n v o k e -
0076120 p r o c e e d - c a s e v s
0076140 N a m e d P r o c e e d F u
0076160 n c t i o n s } \r N o t e : I
0076200 n c o n t r a s t t o t h
0076220 e w a y t h a t Z e t a l
0076240 i s p h a s d e f i n e d
0076260 a b o r t a s a k i n d
0076300 o f c o n d i t i o n t o
0076320 b e h a n d l e d , w e d
0076340 e f i n e a b o r t a s a
0076360 m a n n e r o f p r o c e
0076400 e d i n g a c o n d i t i o
0076420 n r a t h e r t h a n a s
0076440 a c o n d i t i o n t y p
0076460 e t o b e h a n d l e d .
0076500 [ T h i s i m p l i e s t
0076520 h a t t h e t o p - l e v e
0076540 l f o r m o f a p r o c
0076560 e s s s h o u l d h a v e
0076600 ( c a t c h - a b o r t . . .
0076620 ) w r a p p e d a r o u n
0076640 d i t . - A M D ] \r c a t c
0076660 h - a b o r t p r i n t - f o
0076700 r m & b o d y f o r m s \t [
0076720 M a c r o ] \r S e t s u p a
0076740 p r o c e e d - c a s e c o
0076760 n t e x t f o r t h e p r
0077000 o c e e d f u n c t i o n a
0077020 b o r t . \r I f n o a b o r
0077040 t i s d o n e w h i l e
0077060 e x e c u t i n g f o r m s
0077100 a n d t h e y r e t u r n
0077120 n o r m a l l y , a l l v a
0077140 l u e s r e t u r n e d b y
0077160 t h e l a s t f o r m i
0077200 n f o r m s a r e r e t u
0077220 r n e d . I f a n a b o r
0077240 t t r a n s f e r s c o n t
0077260 r o l t o t h i s c a t c
0077300 h - a b o r t , t w o v a l
0077320 u e s a r e r e t u r n e d
0077340 : n i l a n d t h e c o
0077360 n d i t i o n w h i c h w a
0077400 s g i v e n t o a b o r t
0077420 ( o r n i l i f n o n e
0077440 w a s g i v e n ) . \r c a t
0077460 c h - a b o r t c o u l d b
0077500 e d e f i n e d b y : \r ( d
0077520 e f m a c r o c a t c h - a b
0077540 o r t ( p r i n t - f o r m
0077560 & b o d y f o r m s ) \r ` (
0077600 p r o c e e d - c a s e ( p r
0077620 o g n , @ f o r m s ) \r
0077640 ( a b o r t ( c o n d i t i
0077660 o n ) : r e p o r t , p r i
0077700 n t - f o r m : t e s t ( l
0077720 a m b d a ( i g n o r e ) t
0077740 ) \r ( v a l u e s
0077760 n i l c o n d i t i o n ) ) )
0100000 ) \r E x a m p l e : \r ( d e f u
0100020 n r e a d - e v a l - p r i n
0100040 t - l o o p ( l e v e l ) \r
0100060 ( c a t c h - a b o r t ( f
0100100 o r m a t t " E x i t c o
0100120 m m a n d l e v e l ~ D . "
0100140 l e v e l ) \r ( l o o
0100160 p \r ( c a t c h - a
0100200 b o r t ( f o r m a t t "
0100220 R e t u r n t o c o m m a n
0100240 d l e v e l ~ D . " l e v
0100260 e l ) \r ( p r i
0100300 n t ( e v a l ( r e a d ) )
0100320 ) ) ) ) ) \r I f w h i l e e
0100340 x e c u t i n g ( r e a d - e
0100360 v a l - p r i n t - l o o p 1
0100400 ) t h e u s e r t y p e d
0100420 ( + ' a 3 ) a n d l a
0100440 n d e d i n t h e d e b u
0100460 g g e r , h e m i g h t e
0100500 x p e c t t o s e e s o m
0100520 e t h i n g l i k e : [ W e
0100540 l l , o n l y i f y o u '
0100560 r e i n t h e S y m b o l
0100600 i c s d e b u g g e r . - A
0100620 M D ] \r T h e a r g u m e n t
0100640 , A , t o t h e f u n c
0100660 t i o n + w a s o f t h
0100700 e w r o n g t y p e . \r T h
0100720 e f u n c t i o n e x p e c
0100740 t e d a n u m b e r . \r [ 0
0100760 ] L i s p T o p l e v e l \r
0101000 [ 1 ] E x i t c o m m a n d
0101020 l e v e l 1 \r [ 2 ] R e t
0101040 u r n t o c o m m a n d l
0101060 e v e l 1 \r [ 3 ] S u p p l
0101100 y a n e w v a l u e f o
0101120 r t h i s a r g u m e n t \r
0101140 S e l e c t i o n : \r a b o r t
0101160 & o p t i o n a l c o n d i
0101200 t i o n \t [ F u n c t i o n ] \r
0101220 T r a n s f e r s c o n t r o
0101240 l t o t h e i n n e r m o
0101260 s t ( d y n a m i c ) c a t
0101300 c h - a b o r t f o r m , c
0101320 a u s i n g i t t o r e t
0101340 u r n n i l i m m e d i a t
0101360 e l y . [ I f t h e r e i
0101400 s n o p r o c e e d c a s
0101420 e f o r a b o r t c u r r
0101440 e n t l y e n a b l e d , w
0101460 i l l i t s i m p l y r e
0101500 t u r n ? A g a i n , t h e
0101520 r e i s a n i m p l i c a
0101540 t i o n t h a t t h e t o
0101560 p - l e v e l l o o p h a s
0101600 ( c a t c h - a b o r t . .
0101620 . ) w r a p p e d a r o u n
0101640 d i t . - A M D ] \r I t i
0101660 s n o t u s u a l l y u s
0101700 e f u l t o s p e c i f y
0101720 a c o n d i t i o n . T h i
0101740 s i s b e c a u s e t h e
0101760 d e f a u l t t e s t f o
0102000 r a b o r t u n c o n d i t
0102020 i o n a l l y r e t u r n s
0102040 t r u e a n d a l l c a t
0102060 c h - a b o r t f o r m s a
0102100 r e t h e r e f o r e l i k
0102120 e l y t o b e v i s i b l
0102140 e . T h e o n l y s u c h
0102160 f o r m s w h i c h m i g
0102200 h t n o t b e v i s i b l
0102220 e a r e t h o s e w h i c
0102240 h o v e r r i d e t h e d
0102260 e f a u l t t e s t . I n
0102300 t h a t r a r e c a s e ,
0102320 s p e c i f y i n g a c o n
0102340 d i t i o n m a y m a k e
0102360 a d i f f e r e n c e . \r a b
0102400 o r t c o u l d b e d e f
0102420 i n e d b y : \r ( d e f i n e
0102440 - p r o c e e d - f u n c t i o
0102460 n a b o r t : r e p o r t
0102500 " A b o r t . " : t e s t (
0102520 l a m b d a ( i g n o r e )
0102540 t ) ) \r P r e d e f i n e d T
0102560 y p e s \r I m p l e m e n t a t
0102600 i o n N o t e : T h e t y
0102620 p e s p r o c e e d - c a s e
0102640 , c o n d i t i o n , e t c
0102660 . a r e n e w ` ` f i r s
0102700 t c l a s s ' ' t y p e s
0102720 i n t h e s e n s e t h a
0102740 t t h e y m u s t b e d
0102760 i s t i n g u i s h a b l e f
0103000 r o m a n y o t h e r C L
0103020 t y p e s o f w h i c h
0103040 t h e y a r e s u b t y p e
0103060 s . T h i s i s n e c e s
0103100 s a r y b e c a u s e p r i
0103120 n c i s s p e c i f i e d
0103140 t o t r e a t t h e m s p
0103160 e c i a l l y . d e f s t r u
0103200 c t i s o n e w a y t o
0103220 i m p l e m e n t t h e s e
0103240 t y p e s . \r p r o c e e d -
0103260 c a s e \t [ T y p e ] \r T h i s
0103300 i s t h e d a t a t y p
0103320 e u s e d t o r e p r e s
0103340 e n t a p r o c e e d c a
0103360 s e . \r T h e c o n d i t i o
0103400 n t y p e h i e r a r c h y
0103420 l o o k s l i k e t h i s
0103440 : \r
0103460 c o n d i t
0103500 i o n \r
0103520
0103540 | \r
0103560 + - - - - - - - - - - - - - + -
0103600 - - - - - - - - - - - - - - - +
0103620 \r |
0103640 |
0103660 | \r
0103700 s i m p l e - c o n d
0103720 i t i o n w a r n i n g
0103740 s e r i o u s - c o n
0103760 d i t i o n \r
0104000
0104020 |
0104040 | \r
0104060 s i m p
0104100 l e - w a r n i n g
0104120 | \r
0104140
*
0104200 | \r
0104220 + - - - - - - - - - - - - - - -
0104240 - + - - - - - - - - - - - - - -
0104260 - + - - - - - - - + \r
0104300 |
0104320 |
0104340
0104360 | \r s i m p l e - b
0104400 r e a k s t o r a g e - c
0104420 o n d i t i o n
0104440 e r r o r \r
0104460
0104500 |
0104520
0104540 | \r
0104560 + - - - - - - - - +
0104600 - - - - - - - - +
0104620 | \r
0104640 |
0104660 |
0104700 | \r
0104720 s t a
0104740 c k - o v e r f l o w s t
0104760 o r a g e - e x h a u s t e d
0105000 | \r
0105020
*
0105060 ! \r
0105100
0105120 + - - - - - -
0105140 - - - - - - - - - + - - - - - -
0105160 - - - + - - - - - - - + \r
0105200
0105220 |
*
0105260 | \r
0105300
0105320 s i m p l e - e r r o r
0105340 a r i t h m e t i c - e r r o r
0105360 c o n t r o l - e r r o r
0105400 \r T h e t y p e s w h i c h
0105420 a r e n o n - t e r m i n a
0105440 l s i n t h e a b o v e
0105460 t r e e ( i e , c o n d i t
0105500 i o n , w a r n i n g , s e
0105520 r i o u s - c o n d i t i o n ,
0105540 s t o r a g e - c o n d i t i
0105560 o n , e r r o r , a r i t h
0105600 m e t i c - e r r o r , c o n
0105620 t r o l - e r r o r , e t c .
0105640 ) a r e p r o v i d e d p
0105660 r i m a r i l y f o r t y p
0105700 e i n c l u s i o n p u r p
0105720 o s e s . N o r m a l l y ,
0105740 t h e y w o u l d n o t b
0105760 e d i r e c t l y i n s t a
0106000 n t i a t e d . \r I m p l e m e
0106020 n t a t i o n s a r e p e r
0106040 m i t t e d t o s u p p o r
0106060 t n o n - p o r t a b l e s
0106100 y n o n y m s f o r t h e s
0106120 e t y p e s , a s w e l l
0106140 a s t o i n t r o d u c e
0106160 o t h e r t y p e s a b o
0106200 v e , b e l o w , o r b e
0106220 t w e e n t h e t y p e s
0106240 s h o w n i n t h i s t r
0106260 e e a s l o n g a s t h
0106300 e i n d i c a t e d s u b t
0106320 y p e r e l a t i o n s h i p
0106340 s a r e n o t v i o l a t
0106360 e d . S e e F o o t n o t e
0106400 : { t y p e p v s c o n d
0106420 i t i o n - t y p e p } \r c o n
0106440 d i t i o n \t [ T y p e ] \r A l
0106460 l t y p e s o f c o n d i
0106500 t i o n s , w h e t h e r e
0106520 r r o r o r n o n - e r r o
0106540 r , m u s t i n h e r i t
0106560 f r o m t h i s t y p e . \r
0106600 w a r n i n g \t [ T y p e ] \r A
0106620 l l t y p e s o f w a r n
0106640 i n g s s h o u l d i n h e
0106660 r i t f r o m t h i s t y
0106700 p e . T h i s i s a s u
0106720 b t y p e o f c o n d i t i
0106740 o n . \r s e r i o u s - c o n d
0106760 i t i o n \t [ T y p e ] \r A n y
0107000 c o n d i t i o n , w h e t
0107020 h e r e r r o r o r n o n
0107040 - e r r o r , w h i c h s h
0107060 o u l d e n t e r t h e d
0107100 e b u g g e r w h e n s i g
0107120 n a l l e d b u t n o t h
0107140 a n d l e d s h o u l d i n
0107160 h e r i t f r o m t h i s
0107200 t y p e . T h i s i s a
0107220 s u b t y p e o f c o n d i
0107240 t i o n . \r N o t e : i g n o
0107260 r e - e r r o r s w i l l i
0107300 g n o r e c o n d i t i o n s
0107320 o f t y p e e r r o r ,
0107340 n o t o f t y p e s e r i
0107360 o u s - c o n d i t i o n . C
0107400 o n d i t i o n s w h i c h
0107420 a r e s e r i o u s c o n d
0107440 i t i o n s b u t n o t e
0107460 r r o r s a r e t y p i c a
0107500 l l y t h o s e t h a t m
0107520 a y r e q u i r e m o r e
0107540 s o p h i s t i c a t e d h a
0107560 n d l i n g t h a n s i m p
0107600 l y b e i n g i g n o r e d
0107620 . F o r e x a m p l e , i
0107640 g n o r e - e r r o r s w i l
0107660 l n o t i g n o r e a s
0107700 t o r a g e - c o n d i t i o n
0107720 , w h i c h i s a s e r
0107740 i o u s c o n d i t i o n b
0107760 u t i s n o t g e n e r a
0110000 l l y a p r o g r a m e r
0110020 r o r . \r C o m p a t i b i l i
0110040 t y N o t e : s e r i o u s
0110060 - c o n d i t i o n i s s i
0110100 m i l a r t o Z e t a l i s
0110120 p ' s d b g : d e b u g g e r
0110140 - c o n d i t i o n . \r e r r o
0110160 r \t [ T y p e ] \r A l l t y p
0110200 e s o f e r r o r c o n d
0110220 i t i o n s i n h e r i t f
0110240 r o m t h i s c o n d i t i
0110260 o n . T h i s i s a s u
0110300 b t y p e o f c o n d i t i
0110320 o n . \r T h e d e f a u l t
0110340 c o n d i t i o n t y p e f
0110360 o r s i g n a l i s s i m
0110400 p l e - c o n d i t i o n , f
0110420 o r b r e a k i s s i m p
0110440 l e - b r e a k , a n d f o
0110460 r e r r o r a n d c e r r
0110500 o r i s s i m p l e - e r r
0110520 o r . \r s i m p l e - c o n d i
0110540 t i o n \t [ T y p e ] \r C o n d
0110560 i t i o n s s i g n a l l e d
0110600 b y s i g n a l w h e n
0110620 g i v e n a f o r m a t s
0110640 t r i n g a s a f i r s t
0110660 a r g u m e n t a r e o f
0110700 t h i s t y p e . T h i s
0110720 i s a s u b t y p e o f
0110740 c o n d i t i o n . T h e
0110760 i n i t k e y w o r d s : f
0111000 o r m a t - s t r i n g a n d
0111020 : f o r m a t - a r g u m e n
0111040 t s a r e s u p p o r t e d
0111060 . \r s i m p l e - w a r n i n g
0111100 \t [ T y p e ] \r C o n d i t i o
0111120 n s s i g n a l l e d b y
0111140 w a r n w h e n g i v e n
0111160 a f o r m a t s t r i n g
0111200 a s a f i r s t a r g u m
0111220 e n t a r e o f t h i s
0111240 t y p e . T h i s i s a
0111260 s u b t y p e o f w a r n i
0111300 n g . T h e i n i t k e y
0111320 w o r d s : f o r m a t - s t
0111340 r i n g a n d : f o r m a t
0111360 - a r g u m e n t s a r e s
0111400 u p p o r t e d . \r s i m p l e
0111420 - b r e a k \t [ T y p e ] \r C o
0111440 n d i t i o n s u s e d b y
0111460 b r e a k w h e n g i v e
0111500 n a f o r m a t s t r i n
0111520 g a s a f i r s t a r g
0111540 u m e n t a r e o f t h i
0111560 s t y p e . T h i s i s
0111600 a s u b t y p e o f s e r
0111620 i o u s - c o n d i t i o n .
0111640 T h e i n i t k e y w o r d
0111660 s : f o r m a t - s t r i n g
0111700 a n d : f o r m a t - a r g
0111720 u m e n t s a r e s u p p o
0111740 r t e d . \r N o t e : T h i s
0111760 t y p e o f c o n d i t i
0112000 o n i s n o t g e n e r a
0112020 l l y s i g n a l l e d , b
0112040 u t o b j e c t s o f t h
0112060 i s t y p e a r e g e n e
0112100 r a l l y u s e d a s a
0112120 r e f e r e n c e w h i l e
0112140 i n a b r e a k t o c o
0112160 m p u t e t h e a v a i l a
0112200 b l e p r o c e e d t y p e
0112220 s . S e e t h e d e s c r
0112240 i p t i o n o f b r e a k
0112260 f o r m o r e d e t a i l s
0112300 . \r s i m p l e - e r r o r \t [
0112320 T y p e ] \r C o n d i t i o n s
0112340 s i g n a l l e d b y e r
0112360 r o r a n d c e r r o r w
0112400 h e n g i v e n a f o r m
0112420 a t s t r i n g a s a f
0112440 i r s t a r g u m e n t a r
0112460 e o f t h i s t y p e .
0112500 T h i s i s a s u b t y p
0112520 e o f e r r o r . T h e
0112540 i n i t k e y w o r d s : f
0112560 o r m a t - s t r i n g a n d
0112600 : f o r m a t - a r g u m e n
0112620 t s a r e s u p p o r t e d
0112640 . \r s t o r a g e - c o n d i t
0112660 i o n \t [ T y p e ] \r C o n d i
0112700 t i o n s w h i c h r e l a
0112720 t e t o m e m o r y o v e
0112740 r f l o w c o n d i t i o n s
0112760 s h o u l d i n h e r i t
0113000 f r o m t h i s t y p e .
0113020 T h i s i s a s u b t y p
0113040 e o f s e r i o u s - c o n
0113060 d i t i o n . \r s t a c k - o v
0113100 e r f l o w \t [ T y p e ] \r C o
0113120 n d i t i o n s w h i c h r
0113140 e l a t e t o s t a c k o
0113160 v e r f l o w s h o u l d i
0113200 n h e r i t f r o m t h i s
0113220 t y p e . T h i s i s a
0113240 s u b t y p e o f s t o r
0113260 a g e - c o n d i t i o n . \r s
0113300 t o r a g e - e x h a u s t e d
0113320 \t [ T y p e ] \r C o n d i t i o
0113340 n s w h i c h r e l a t e
0113360 t o a n y k i n d o f G
0113400 C o v e r f l o w s h o u l
0113420 d i n h e r i t f r o m t
0113440 h i s t y p e . T h i s i
0113460 s a s u b t y p e o f s
0113500 t o r a g e - c o n d i t i o n
0113520 . \r c o n t r o l - e r r o r \t
0113540 [ T y p e ] \r E r r o r s i n
0113560 t h e t r a n s f e r o f
0113600 c o n t r o l i n a p r
0113620 o g r a m s h o u l d i n h
0113640 e r i t f r o m t h i s t
0113660 y p e . T h i s i s a s
0113700 u b t y p e o f e r r o r .
0113720 \r i l l e g a l - t h r o w \t [
0113740 T y p e ] \r T h e e r r o r
0113760 w h i c h r e s u l t s w h
0114000 e n t h r o w i s g i v e
0114020 n a t a g w h i c h i s
0114040 n o t a c t i v e s h o u
0114060 l d i n h e r i t f r o m
0114100 t h i s . T h i s i s a
0114120 s u b t y p e o f c o n t r
0114140 o l - e r r o r . T h e f u
0114160 n c t i o n i l l e g a l - t
0114200 h r o w - t a g w i l l a c
0114220 c e s s t h e o f f e n d i
0114240 n g t a g . \r i l l e g a l -
0114260 g o \t [ T y p e ] \r T h e e r
0114300 r o r w h i c h r e s u l t
0114320 s w h e n g o i s g i v
0114340 e n a t a g w h i c h i
0114360 s n o l o n g e r a v a i
0114400 l a b l e s h o u l d i n h
0114420 e r i t f r o m t h i s .
0114440 T h i s i s a s u b t y p
0114460 e o f c o n t r o l - e r r
0114500 o r . T h e f u n c t i o n
0114520 i l l e g a l - g o - t a g
0114540 w i l l a c c e s s t h e
0114560 o f f e n d i n g t a g . \r i
0114600 l l e g a l - r e t u r n \t [ T
0114620 y p e ] \r T h e e r r o r w
0114640 h i c h r e s u l t s w h e
0114660 n r e t u r n - f r o m i s
0114700 g i v e n a b l o c k n
0114720 a m e w h i c h i s n o
0114740 l o n g e r a c c e s s i b l
0114760 e s h o u l d i n h e r i t
0115000 f r o m t h i s . T h i s
0115020 i s a s u b t y p e o f
0115040 c o n t r o l - e r r o r .
0115060 T h e f u n c t i o n i l l
0115100 e g a l - r e t u r n - t a g
0115120 w i l l a c c e s s t h e
0115140 o f f e n d i n g b l o c k
0115160 n a m e . \r s t r e a m - e r r
0115200 o r \t [ T y p e ] \r E r r o r s
0115220 w h i c h o c c u r d u r
0115240 i n g i n p u t f r o m o
0115260 r o u t p u t t o a s t
0115300 r e a m s h o u l d i n h e
0115320 r i t f r o m t h i s t y
0115340 p e . T h i s i s a s u
0115360 b t y p e o f e r r o r .
0115400 T h e f u n c t i o n s t r
0115420 e a m - e r r o r - s t r e a m
0115440 w i l l a c c e s s t h e
0115460 o f f e n d i n g s t r e a
0115500 m . \r r e a d - e r r o r \t [ T
0115520 y p e ] \r E r r o r s w h i c
0115540 h o c c u r d u r i n g a
0115560 n i n p u t o p e r a t i o
0115600 n o n a s t r e a m s h
0115620 o u l d i n h e r i t f r o
0115640 m t h i s t y p e . T h i
0115660 s i s a s u b t y p e o
0115700 f s t r e a m - e r r o r . \r
0115720 e n d - o f - f i l e \t [ T y p
0115740 e ] \r T h e e r r o r w h i
0115760 c h r e s u l t s w h e n
0116000 a r e a d o p e r a t i o n
0116020 i s d o n e o n a s t
0116040 r e a m w h i c h h a s n
0116060 o m o r e t o k e n s s h
0116100 o u l d i n h e r i t f r o
0116120 m t h i s t y p e . T h i
0116140 s i s a s u b t y p e o
0116160 f r e a d - e r r o r . \r c e
0116200 l l - e r r o r \t [ T y p e ] \r
0116220 E r r o r s w h i c h o c c
0116240 u r w h i l e a c c e s s i
0116260 n g a l o c a t i o n s h
0116300 o u l d i n h e r i t f r o
0116320 m t h i s t y p e . T h i
0116340 s i s a s u b t y p e o
0116360 f e r r o r . T h e f u n
0116400 c t i o n c e l l - e r r o r
0116420 - n a m e w i l l a c c e s
0116440 s t h e n a m e o f t h
0116460 e o f f e n d i n g c e l l
0116500 . \r u n b o u n d - v a r i a b
0116520 l e \t [ T y p e ] \r T h e e r
0116540 r o r w h i c h r e s u l t
0116560 s f r o m t r y i n g t o
0116600 a c c e s s t h e v a l u
0116620 e o f a n u n b o u n d
0116640 v a r i a b l e s h o u l d
0116660 i n h e r i t f r o m t h i
0116700 s t y p e . T h i s i s
0116720 a s u b t y p e o f c e l
0116740 l - e r r o r . \r u n d e f i n
0116760 e d - f u n c t i o n \t [ T y p
0117000 e ] \r T h e e r r o r w h i
0117020 c h r e s u l t s f r o m
0117040 t r y i n g t o a c c e s s
0117060 t h e v a l u e o f a n
0117100 u n d e f i n e d f u n c t
0117120 i o n s h o u l d i n h e r
0117140 i t f r o m t h i s t y p
0117160 e . T h i s i s a s u b
0117200 t y p e o f c e l l - e r r
0117220 o r . \r a r i t h m e t i c - e
0117240 r r o r \t [ T y p e ] \r E r r o
0117260 r s w h i c h o c c u r w
0117300 h i l e d o i n g a r i t h
0117320 m e t i c t y p e o p e r a
0117340 t i o n s s h o u l d i n h
0117360 e r i t f r o m t h i s t
0117400 y p e . T h i s i s a s
0117420 u b t y p e o f e r r o r .
0117440 T h e f u n c t i o n s a
0117460 r i t h m e t i c - e r r o r -
0117500 o p e r a t i o n a n d a r
0117520 i t h m e t i c - e r r o r - o
0117540 p e r a n d s w i l l a c c
0117560 e s s t h e o f f e n d i n
0117600 g o p e r a t i o n a n d
0117620 a r g u m e n t s , r e s p e
0117640 c t i v e l y . \r [ T h i s l
0117660 i s t i s i n c o m p l e t
0117700 e . I b e l i e v e t h a
0117720 t t h e r e s h o u l d b
0117740 e a w e l l - d e f i n e d
0117760 c o n d i t i o n t h a t
0120000 i s s i g n a l l e d f o r
0120020 a l l o f t h e p l a c
0120040 e s w h e r e C L t L s a
0120060 y s " s i g n a l s a n e
0120100 r r o r . " F o r i n s t a
0120120 n c e , p a r s e - n a m e s
0120140 t r i n g s p e c i f i e s
0120160 t h a t " a n e r r o r i
0120200 s s i g n a l l e d i f t
0120220 h e h o s t s d o n ' t m
0120240 a t c h . " T h e o n l y
0120260 c o n d i t i o n d e f i n e
0120300 d s o f a r t h a t s e
0120320 e m s a p p r o p r i a t e
0120340 i s e r r o r ( m a y b e
0120360 s i m p l e - e r r o r ) , b
0120400 u t t h i s i s f a r t
0120420 o o v a g u e f o r t h i
0120440 s p a r t i c u l a r p r o
0120460 b l e m . I t ' s c e r t a
0120500 i n l y n o t a n i n s t
0120520 a n c e o f s t r e a m - e
0120540 r r o r , f o r e x a m p l
0120560 e . A f u l l s p e c i f
0120600 i c a t i o n o f t h e e
0120620 r r o r s y s t e m s h o u
0120640 l d i n c l u d e t h i s
0120660 m a p p i n g b e t w e e n
0120700 c o n d i t i o n t y p e s
0120720 a n d t h i n g s t h a t
0120740 s i g n a l e r r o r s . Y
0120760 o u c o u l d p r o b a b l
0121000 y g e t a w a y w i t h
0121020 h a v i n g a l l o f t h
0121040 e m c a l l e r r o r a n
0121060 d c e r r o r w i t h f o
0121100 r m a t s t r i n g s , b u
0121120 t t h e n w h y b o t h e
0121140 r d e f i n g t h i s e l
0121160 a b o r a t e t y p e h i e
0121200 r a r c h y ? - A M D ] \r F
0121220 o o t n o t e s \r { i n v o k e
0121240 - p r o c e e d - c a s e v s
0121260 N a m e d P r o c e e d F
0121300 u n c t i o n s } \r S o m e r
0121320 e a d e r s m a y w o n d e
0121340 r w h y t h e r e a r e
0121360 b o t h p r o c e e d f u n
0121400 c t i o n s a n d a n i n
0121420 v o k e - p r o c e e d - c a s
0121440 e p r i m i t i v e . \r T h e
0121460 r e a s o n f o r n a m e
0121500 d p r o c e e d f u n c t i
0121520 o n s i s t o f o r m a l
0121540 i z e i n t e r f a c e s ,
0121560 w h i l e t h e r e a s o n
0121600 f o r i n v o k e - p r o c
0121620 e e d - c a s e i s t o p
0121640 r o v i d e f l e x i b l e
0121660 a n d p o r t a b l e a c c
0121700 e s s t o t h e m e c h a
0121720 n i s m . \r i n v o k e - p r o
0121740 c e e d - c a s e h a s t h
0121760 e f o l l o w i n g t w o
0122000 p u r p o s e s : \r 377 377 \0 357 f \0
0122020 \t 377 \0 A s a s u b - p r i m
0122040 i t i v e , t o i m p l e m
0122060 e n t n a m e d p r o c e e
0122100 d f u n c t i o n s . \r 377 377 \0
0122120 357 f \0 \t 377 \0 T o i n v o k e
0122140 a n o n y m o u s p r o c e e
0122160 d c a s e s . ( e g , i n
0122200 a n i n t e r a c t i v e
0122220 d e b u g g e r ) . \r W r i t e
0122240 r s o f p o r t a b l e c
0122260 o d e a r e e n c o u r a g
0122300 e d t o p r e f e r t h e
0122320 u s e o f n a m e d p r
0122340 o c e e d f u n c t i o n s
0122360 o v e r t h e u s e o f
0122400 i n v o k e - p r o c e e d - c
0122420 a s e i n a n y s i t u a
0122440 t i o n w h e r e i t i s
0122460 f e a s i b l e . N e v e r
0122500 t h e l e s s , i t s h o u
0122520 l d b e r e c o g n i z e d
0122540 t h a t s o m e u s e f u
0122560 l , p o r t a b l e p r o g
0122600 r a m s ( p a r t i c u l a r
0122620 l y , i n t e r a c t i v e
0122640 d e b u g g e r s ) c a n o
0122660 n l y b e w r i t t e n u
0122700 s i n g i n v o k e - p r o c
0122720 e e d - c a s e . [ I t a p
0122740 p e a r s t h e n t h a t
0122760 o n e c a n h a v e a n
0123000 a m e d p r o c e e d c a s
0123020 e w i t h o u t t h e r e
0123040 b e i n g a c o r r e s p o
0123060 n d i n g p r o c e e d f u
0123100 n c t i o n 377 377 \0 357 % 377 \0 y o u
0123120 w o u l d u s e i n v o k
0123140 e - p r o c e e d - c a s e t
0123160 o g e t t o i t . W o u
0123200 l d n ' t i t b e n i c e
0123220 i f C L h a d d y n a m
0123240 i c a l l y b o u n d f u n
0123260 c t i o n s s o t h a t y
0123300 o u c o u l d c a l l p r
0123320 o c e e d c a s e s d i r e
0123340 c t l y ? I ' m a l l f o
0123360 r f o r m a l i z i n g i n
0123400 t e r f a c e s , b u t t h
0123420 e c u r r e n t s c h e m e
0123440 f o r d e f i n i n g p r
0123460 o c e e d f u n c t i o n s
0123500 d e f i n e s t h e m g l o
0123520 b a l l y w i t h o u t r e
0123540 f e r e n c e t o a c o n
0123560 d i t i o n t y p e . T h i
0123600 s w a s t e s n a m e s a
0123620 n d i s a p o s s i b l e
0123640 s o u r c e o f n a m e
0123660 c o l l i s i o n s 377 377 \0 357 % \0
0123700 I \0 \0 c \0 a \0 n \0 \0 e \0 a \0
0123720 s \0 i \0 l \0 y \0 \0 i \0 m \0 a \0
0123740 g \0 i \0 n \0 e \0 \0 p \0 o \0 p \0
0123760 u \0 l \0 a \0 r \0 \0 n \0 a \0 m \0
0124000 e \0 s \0 \0 f \0 o \0 r \0 \0 p \0
0124020 r \0 o \0 c \0 e \0 e \0 d \0 \0 f \0
0124040 u \0 n \0 c \0 t \0 i \0 o \0 n \0 s \0
0124060 \0 t \0 h \0 a \0 t \0 \0 w \0 o \0
0124100 u \0 l \0 d \0 \0 w \0 a \0 n \0 t \0
0124120 \0 t \0 o \0 \0 c \0 o \0 l \0 l \0
0124140 e \0 c \0 t \0 \0 d \0 i \0 f \0 f \0
0124160 e \0 r \0 e \0 n \0 t \0 \0 p \0 a \0
0124200 r \0 a \0 m \0 e \0 t \0 e \0 r \0 s \0
0124220 \0 w \0 h \0 e \0 n \0 \0 p \0 r \0
0124240 o \0 c \0 e \0 e \0 d 377 \0 i n g f
0124260 r o m d i f f e r e n t c o
0124300 n d i t i o n s ; & o p t i o
0124320 n a l i s n o t p o w e r
0124340 f u l e n o u g h f o r t
0124360 h i s . - A M D ] \r { t r u e
0124400 } \r T h e f u n c t i o n #
0124420 ' ( l a m b d a ( i g n o r e
0124440 ) t ) i s g o i n g t o
0124460 b e a c o m m o n o n e
0124500 t o u s e i n c o n j u
0124520 n c t i o n w i t h t h i s
0124540 s y s t e m . H o p e f u l
0124560 l y w e c a n a g r e e
0124600 t h a t a f u n c t i o n
0124620 # ' t r u e c o u l d b e
0124640 e s t a b l i s h e d t o m
0124660 e a n # ' ( l a m b d a ( &
0124700 r e s t i g n o r e ) t )
0124720 t o h e l p r e d u c e v
0124740 i s u a l c l u t t e r . \r {
0124760 t y p e p v s c o n d i t i
0125000 o n - t y p e p } \r A n e a r
0125020 l i e r v e r s i o n o f
0125040 t h i s p r o p o s a l u s
0125060 e d a f u n c t i o n c a
0125100 l l e d c o n d i t i o n - t
0125120 y p e p r a t h e r t h a n
0125140 u s i n g r e a l t y p e
0125160 p . O v e r M L Y ' s o b
0125200 j e c t i o n s , I f i n a
0125220 l l y c h o s e t o u s e
0125240 t y p e p f o r t h e f
0125260 o l l o w i n g r e a s o n s
0125300 : \r 377 377 \0 357 f \0 \t 377 \0 W e n e
0125320 e d a t y p e s y s t e m
0125340 w h i c h c a n d e a l
0125360 w i t h t h e s e i s s u e
0125400 s . R e d u c i n g t h e
0125420 n e e d f o r t y p e p t
0125440 o a d d r e s s t h e s e
0125460 i s s u e s m i g h t r e d
0125500 u c e t h e p e r c e i v e
0125520 d n e e d f o r u s t o
0125540 c o n v e r g e o n a b
0125560 e t t e r t y p e s y s t e
0125600 m . \r 377 377 \0 357 f \0 \t 377 \0 I f w
0125620 e l a t e r a d o p t a
0125640 b e t t e r t y p e s y s t
0125660 e m , i t i s p o s s i b
0125700 l e t h a t a n y c o n d
0125720 i t i o n - t y p e p i n t r
0125740 o d u c e d n o w w o u l d
0125760 h a v e d i f f e r e n t
0126000 i n h e r i t a n c e r u l e
0126020 s . I t w o u l d b e u
0126040 n d u e b u r d e n o n t
0126060 h e u s e r t o h a v e
0126100 t o r e m e m b e r t h e
0126120 r u l e s f o r m o r e t
0126140 h a n o n e k i n d o f
0126160 t y p e s y s t e m . \r 377 377 \0
0126200 357 f \0 \t 377 \0 I n t r o d u c i n
0126220 g a c o n d i t i o n - t y
0126240 p e p s e t s u p a p r
0126260 e c e d e n t f o r t h e
0126300 i n t r o d u c t i o n o f
0126320 o t h e r x x x - t y p e p
0126340 o p e r a t i o n s . I t w
0126360 o u l d b e t o o e a s y
0126400 f o r s u c h t y p e s
0126420 y s t e m s t o v a r y i
0126440 n s u b t l e w a y s . I
0126460 t i s b e t t e r t o s
0126500 i m p l y i n s i s t t h a
0126520 t t y p e p b e g o o d
0126540 e n o u g h a s i s , o r
0126560 b e i m p r o v e d u n t
0126600 i l i t i s g o o d e n
0126620 o u g h . \r { : r e p o r t v
0126640 s : r e p o r t - f u n c t i
0126660 o n } \r O r i g i n a l l y ,
0126700 I h a d : r e p o r t - f u
0126720 n c t i o n , : r e p o r t -
0126740 s t r i n g , a n d : r e p
0126760 o r t . \r M o o n o b j e c t
0127000 e d t o a b u n c h o f
0127020 k e y w o r d s w h i c h
0127040 d i d s i m i l a r t h i n
0127060 g s . H e w a n t e d j u
0127100 s t o n e k e y w o r d .
0127120 H e a l s o o b j e c t e d
0127140 t o t h e n e w t e r m
0127160 " r e p o r t " , f e e l i
0127200 n g t h a t " p r i n t "
0127220 w a s a d e q u a t e . \r I
0127240 c i r c u l a t e d a d r a
0127260 f t p r o p o s a l w i t h
0127300 j u s t a : p r i n t o
0127320 p t i o n t h a t d i d w
0127340 h a t t h e : r e p o r t
0127360 o p t i o n d o e s i n t
0127400 h i s p r o p o s a l , b u
0127420 t w i t h n o a n a l o g
0127440 f o r t h e : r e p o r t
0127460 - f u n c t i o n . I w a s
0127500 n ' t c o m p l e t e l y h
0127520 a p p y w i t h t h e a b
0127540 s e n c e o f : r e p o r t
0127560 - f u n c t i o n b u t f i
0127600 g u r e d I ' d l i v e w
0127620 i t h i t i f i t s a v
0127640 e d a l o t o f f u s s
0127660 . \r M L Y o b j e c t e d t
0127700 o t h e a b s e n c e o f
0127720 : r e p o r t - f u n c t i o
0127740 n . S o I b a c k e d u
0127760 p a b i t a n d d e c i
0130000 d e d t h a t t h e r e w
0130020 e r e p r o b a b l y r e a
0130040 l l y t w o c a m p s a n
0130060 d t h a t w e s h o u l d
0130100 j u s t s e r v e b o t h
0130120 . M L Y a l s o w o n d e
0130140 r e d w h y t h i s o p t
0130160 i o n c o n t r o l l e d t
0130200 y p e o u t o n l y i n t
0130220 h e c a s e w h e r e * p
0130240 r i n t - e s c a p e * w a s
0130260 n i l . S o I b a c k e
0130300 d u p a n d i n t r o d u
0130320 c e d t h e t e r m " r e
0130340 p o r t " i n s t e a d o f
0130360 p r i n t s o t h a t p
0130400 e o p l e w o u l d n ' t w
0130420 o n d e r w h y t h e : p
0130440 r i n t o p t i o n d i d n
0130460 ' t c o n t r o l t h e e
0130500 n t i r e b e h a v i o r o
0130520 f p r i n 1 a n d p r i n
0130540 t . \r T h e f i n a l r e s
0130560 u l t o f t h i s w a s
0130600 t o r e v e r t b a c k t
0130620 o : r e p o r t a n d : r
0130640 e p o r t - f u n c t i o n ,
0130660 b u t t o o m i t : r e p
0130700 o r t - s t r i n g a s b e
0130720 i n g u n n e c e s s a r y .
0130740 I h o p e t h a t n o
0130760 o n e w i l l a r g u e a
0131000 l o t a b o u t t h i s
0131020 377 377 \0 357 % 377 \0 i t w i l l
0131040 s e r v e m o s t p e o p l
0131060 e ' s n e e d s a n d I
0131100 t h i n k i s t h e s o r
0131120 t o f t h i n g w e c o
0131140 u l d g o a r o u n d a n
0131160 d a r o u n d a b o u t t
0131200 o n o g o o d e n d . \r R
0131220 e f e r e n c e s \r S o m e b
0131240 a c k g r o u n d i n f o r m
0131260 a t i o n a b o u t m o t i
0131300 v a t i o n f o r d e c i s
0131320 i o n s i n t h i s p r o
0131340 p o s a l m a y b e f o u
0131360 n d i n m y p a p e r `
0131400 ` E x c e p t i o n a l S i t
0131420 u a t i o n s i n L i s p ,
0131440 ' ' w h i c h i s a v a i
0131460 l a b l e a s A . I . W o
0131500 r k i n g P a p e r 2 6 8
0131520 f r o m t h e M I T A I
0131540 L a b p u b l i c a t i o n s
0131560 o f f i c e ( 5 4 5 T e c
0131600 h n o l o g y S q u a r e ,
0131620 C a m b r i d g e , M A 0 2
0131640 1 3 9 ) . \r M u c h o f t h
0131660 e b a s i s o f ` ` E x c
0131700 e p t i o n a l S i t u a t i
0131720 o n s i n L i s p ' ' d e
0131740 r i v e s f r o m ` ` S i g
0131760 n a l l i n g a n d H a n d
0132000 l i n g C o n d i t i o n s ,
0132020 ' ' a d o c u m e n t p u
0132040 b l i s h e d b y S y m b o
0132060 l i c s , I n c . w h i c
0132100 h d e s c r i b e s t h e
0132120 L i s p M a c h i n e ' s c
0132140 o n d i t i o n s y s t e m
0132160 a s i t l o o k e d w h e
0132200 n o r i g i n a l l y i n t
0132220 r o d u c e d i n 1 9 8 3 .
0132240 \r \0 \0 \0 \0 \0 003 ( L I S T ( ( P
0132260 A G E N I L ( P A P E R S I
0132300 Z E L e t t e r F O L I O I
0132320 N F O ( A R A B I C ) ) ( 0
0132340 0 6 1 2 7 9 2 ) ( ( T E
0132360 X T N I L N I L ( 4 8 7
0132400 2 5 1 6 6 4 8 ) N I L ) )
0132420 ) ( P A G E N I L ( P A P
0132440 E R S I Z E L e t t e r F O
0132460 L I O I N F O ( A R A B I C )
0132500 S T A R T I N G P A G E # N
0132520 I L ) ( 0 0 6 1 2 7 9 2
0132540 ) ( ( T E X T N I L N I L
0132560 ( 4 8 7 2 5 1 6 6 4 8 )
0132600 N I L ) ) ) ( P A G E N I
0132620 L ( P A P E R S I Z E L e t
0132640 t e r F O L I O I N F O ( A
0132660 R A B I C ) S T A R T I N G P
0132700 A G E # N I L ) ( 0 0 6
0132720 1 2 7 9 2 ) ( ( T E X T N
0132740 I L N I L ( 4 8 7 2 5 1
0132760 6 6 4 8 ) N I L ) ) ) ) ) \0
0133000 \0 \0 \0 \0 005 \0 \r \0 . \0 \0 \0 \0 \0 \0 \0
0133020 \b \0 \0 \0 001 003 001 \0 \0 001 001 260 \0 \0 \0 \0
0133040 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0133060 \0 \0 \0 \0 \0 \0 . \0 \0 \0 \0 \0 \0 \0 022 \0
0133100 \0 \0 001 003 004 \0 \0 001 001 370 \0 \0 \0 \0 \0 \0
0133120 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0133140 \0 \0 \0 \0 1 \0 030 \0 $ \0 \0 \0 006 \0 \0 \0
0133160 001 003 001 \0 \0 002 \0 $ \0 001 370 \0 \0 \0 \0 \0
0133200 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0133220 \0 \0 \0 \0 \0 . \0 \0 \0 \0 \0 \0 \0 022 \0 \0
0133240 \0 001 003 003 \0 \0 001 001 370 \0 \0 \0 \0 \0 \0 \0
0133260 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0133300 \0 \0 \0 . \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001
0133320 003 001 \0 \0 001 001 370 \0 \0 \0 \0 \0 \0 \0 \0 \0
0133340 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0133360 \0 . \0 \0 \0 \0 \0 \0 \0 006 \0 \0 \0 001 003 001
0133400 \0 \0 001 001 370 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0133420 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 .
0133440 \0 0 \0 0 002 @ \0 \0 \0 \0 \0 001 003 001 \0 \0
0133460 001 001 370 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0133500 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 . \0 <
0133520 \0 < \0 \0 \0 006 \0 \0 \0 001 003 001 \0 \0 001 001
0133540 370 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0133560 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 + \0 0 \0 0
0133600 002 @ \0 \0 \0 \0 \0 001 003 001 \0 005 \0 \0 \0 \0
0133620 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0133640 \0 \0 \0 \0 \0 \0 . \0 036 \0 036 \0 \0 \0 006 \0
0133660 \0 \0 001 003 001 \0 \0 001 001 370 \0 \0 \0 \0 \0 \0
0133700 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0133720 \0 \0 \0 \0 . \0 0 \0 0 002 @ \0 \b \0 \0 \0
0133740 001 003 001 \0 \0 001 001 370 \0 \0 \0 \0 \0 \0 \0 \0
0133760 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0134000 \0 \0 . \0 \0 \0 \0 \0 \0 \0 \b \0 \0 \0 001 003
0134020 001 \0 \0 001 001 370 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0134040 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0134060 ( \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 001 \0
0134100 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0134120 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 004 \0 \n \0
0134140 030 \0 \n T I M E S R O M A N \0 \b \0
0134160 \0 \0 \0 \0 \0 001 \0 \0 030 \0 \n T I M E S
0134200 R O M A N \0 \f \0 \0 \0 \0 \0 \0 002 \0 \0
0134220 030 \0 \n T I M E S R O M A N \0 \n \0
0134240 \0 \0 \0 \0 \0 002 \0 \0 026 \0 \b T E R M I
0134260 N A L \0 \b \0 \0 \0 \0 \0 \0 \0 \0 \0 030 \0
0134300 \n T I M E S R O M A N \0 \b \0 \0 \0
0134320 \0 \0 \0 \0 \0 \0 026 \0 \b T E R M I N A
0134340 L \0 \n \0 \0 \0 \0 \0 \0 002 \0 \0 026 \0 \b T
0134360 E R M I N A L \0 \n \0 \0 \0 \0 \0 \0 \0
0134400 \0 \0 030 \0 \n T I M E S R O M A N \0
0134420 \n \0 \0 \0 \0 \0 \0 001 \0 \0 030 \0 \n T I M
0134440 E S R O M A N \0 \n \0 \0 \0 \0 \0 \0 \0
0134460 \0 \0 ? \0 1 ( D E F A U L T F O N
0134500 T 1 ( G A C H A 1 0 ) (
0134520 G A C H A 8 ) ( T E R M I N
0134540 A L 8 ) ) \0 \n \0 \0 \0 \0 \0 \0 \0 \0
0134560 \0 \0 \0 \0 \0 002 \0 \r \0 \0 \0 G \0 \0 \0 \0
0134600 \t \0 \0 \0 \0 \0 002 \0 \f \0 \0 001 R \0 \0 \0
0134620 \0 \t \0 \0 \0 \0 \0 002 \0 004 \0 \0 \0 \v \0 \0
0134640 \0 \0 002 \0 \0 \0 001 \0 \0 \0 \0 \t \0 \0 \0 \0
0134660 \0 002 \0 \f \0 \0 \0 002 \0 \0 \0 \0 \t \0 \0 \0
0134700 \t \0 \0 \0 \0 \b \0 \0 \0 212 \0 \0 \0 \0 \t \0
0134720 \0 \0 \0 \0 002 \0 \f \0 \0 \0 - \0 \0 \0 \0 \t
0134740 \0 \0 \0 006 \0 \0 \0 \0 \b \0 \0 \0 - \0 \0 \0
0134760 \0 \t \0 \0 \0 \b \0 \0 \0 \0 \b \0 \0 \0 : \0
0135000 \0 \0 \0 \t \0 \0 \0 006 \0 \0 \0 \0 \b \0 \0 \0
0135020 263 \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002 \0 \f \0 \0
0135040 \0 b \0 \0 \0 \0 \t \0 \0 \0 005 \0 \0 \0 \0 \a
0135060 \0 \0 \0 005 \0 \0 \0 \0 \t \0 \0 \0 005 \0 \0 \0
0135100 \0 \a \0 \0 \0 002 \0 \0 \0 \0 \t \0 \0 \0 005 \0
0135120 \0 \0 \0 \a \0 \0 \0 005 \0 \0 \0 \0 \t \0 \0 \0
0135140 006 \0 \0 \0 \0 \a \0 \0 \0 006 \0 \0 \0 \0 \t \0
0135160 \0 \0 \a \0 \0 \0 \0 \a \0 \0 \0 005 \0 \0 \0 \0
0135200 \t \0 \0 \0 002 \0 \0 \0 \0 \a \0 \0 \0 > \0 \0
0135220 \0 \0 \t \0 \0 \0 \a \0 \0 \0 \0 \b \0 \0 \0 300
0135240 \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002 \0 \f \0 \0 \0
0135260 244 \0 \0 \0 \0 \t \0 \0 \0 022 \0 \0 \0 \0 \b \0
0135300 \0 \0 323 \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002 \0 \f
0135320 \0 \0 \0 K \0 \0 \0 \0 \t \0 \0 \0 006 \0 \0 \0
0135340 \0 \b \0 \0 001 p \0 \0 \0 \0 \t \0 \0 \0 \0 \0
0135360 002 \0 \f \0 \0 \0 _ \0 \0 \0 \0 \t \0 \0 \0 \t
0135400 \0 \0 \0 \0 006 \0 \0 \0 \v \0 \0 \0 \0 \t \0 \0
0135420 \0 024 \0 \0 \0 \0 \a \0 \0 \0 \r \0 \0 \0 \0 \t
0135440 \0 \0 \0 001 \0 \0 \0 \0 \a \0 \0 \0 022 \0 \0 \0
0135460 \0 \t \0 \0 \0 \0 \0 002 \0 \f \0 \0 \0 y \0 \0
0135500 \0 \0 \t \0 \0 \0 024 \0 \0 \0 \0 \a \0 \0 \0 240
0135520 \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002 \0 \f \0 \0 \0
0135540 C \0 \0 \0 \0 \t \0 \0 \0 020 \0 \0 \0 \0 006 \0
0135560 \0 \0 B \0 \0 \0 \0 \t \0 \0 \0 016 \0 \0 \0 \0
0135600 006 \0 \0 \0 002 \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002
0135620 \0 \f \0 \0 \0 \ \0 \0 \0 \0 \t \0 \0 \0 006 \0
0135640 \0 \0 \0 \b \0 \0 \0 h \0 \0 \0 \0 \t \0 \0 \0
0135660 \0 \0 002 \0 \f \0 \0 \0 271 \0 \0 \0 \0 \t \0 \0
0135700 \0 \0 \0 002 \0 003 \0 \0 \0 \a \0 \0 002 \0 \t \0
0135720 \0 \0 ! \0 \0 \0 \0 \t \0 \0 \0 005 \0 \0 \0 \0
0135740 \b \0 \0 \0 \f \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002
0135760 \0 003 \0 \0 \0 \a \0 \0 002 \0 \t \0 \0 \0 211 \0
0136000 \0 \0 \0 \t \0 \0 \0 \0 \0 002 \0 \f \0 \0 \0 q
0136020 \0 \0 \0 \0 \t \0 \0 \0 \a \0 \0 \0 \0 \b \0 \0
0136040 \0 317 \0 \0 \0 \0 \t \0 \0 001 036 \0 \0 \0 \0 005
0136060 \0 \0 \0 001 \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002 \0
0136100 \f \0 \0 \0 ^ \0 \0 \0 \0 \t \0 \0 \0 006 \0 \0
0136120 \0 \0 \a \0 \0 \0 , \0 \0 \0 \0 \t \0 \0 \0 \0
0136140 \0 002 \0 \f \0 \0 \0 245 \0 \0 \0 \0 \t \0 \0 \0
0136160 016 \0 \0 \0 \0 006 \0 \0 \0 003 \0 \0 \0 \0 \t \0
0136200 \0 \0 \0 \0 002 \0 \f \0 \0 \0 002 \0 \0 \0 \0 \t
0136220 \0 \0 \0 \a \0 \0 \0 \0 \b \0 \0 001 034 \0 \0 \0
0136240 \0 \t \0 \0 \0 \0 \0 002 \0 003 \0 \0 \0 \a \0 \0
0136260 002 \0 \t \0 \0 001 253 \0 \0 \0 \0 \t \0 \0 \0 \0
0136300 \0 002 \0 003 \0 \0 \0 \a \0 \0 002 \0 \t \0 \0 \0
0136320 : \0 \0 \0 \0 \t \0 \0 \0 002 \0 \0 \0 \0 \a \0
0136340 \0 \0 002 \0 \0 \0 \0 \t \0 \0 \0 006 \0 \0 \0 \0
0136360 \a \0 \0 \0 002 \0 \0 \0 \0 \t \0 \0 \0 005 \0 \0
0136400 \0 \0 \a \0 \0 \0 002 \0 \0 \0 \0 \t \0 \0 \0 005
0136420 \0 \0 \0 \0 \a \0 \0 \0 005 \0 \0 \0 \0 \t \0 \0
0136440 \0 023 \0 \0 \0 \0 \a \0 \0 \0 002 \0 \0 \0 \0 \t
0136460 \0 \0 \0 \0 \0 002 \0 003 \0 \0 \0 \a \0 \0 002 \0
0136500 \t \0 \0 \0 # \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002
0136520 \0 003 \0 \0 \0 \a \0 \0 002 \0 \t \0 \0 \0 * \0
0136540 \0 \0 \0 \t \0 \0 \0 \0 \0 002 \0 \f \0 \0 \0 332
0136560 \0 \0 \0 \0 \t \0 \0 \0 \f \0 \0 \0 \0 006 \0 \0
0136600 \0 , \0 \0 \0 \0 \t \0 \0 \0 \f \0 \0 \0 \0 006
0136620 \0 \0 \0 022 \0 \0 \0 \0 \t \0 \0 \0 023 \0 \0 \0
0136640 \0 006 \0 \0 \0 002 \0 \0 \0 \0 \t \0 \0 \0 \0 \0
0136660 002 \0 \f \0 \0 \0 # \0 \0 \0 \0 \t \0 \0 \0 006
0136700 \0 \0 \0 \0 \b \0 \0 \0 206 \0 \0 \0 \0 \t \0 \0
0136720 \0 016 \0 \0 \0 \0 \a \0 \0 \0 004 \0 \0 \0 \0 \t
0136740 \0 \0 \0 003 \0 \0 \0 \0 \a \0 \0 \0 e \0 \0 \0
0136760 \0 \t \0 \0 \0 \0 \0 002 \0 \v \0 \0 \0 001 \0 \0
0137000 \0 \0 \t \0 \0 \0 031 \0 \0 \0 \0 \a \0 \0 \0 001
0137020 \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002 \0 \f \0 \0 \0
0137040 \f \0 \0 \0 \0 \t \0 \0 \0 \t \0 \0 \0 \0 \a \0
0137060 \0 \0 210 \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002 \0 004
0137100 \0 \0 \0 ) \0 \0 \0 \0 002 \0 \0 \0 001 \0 \0 \0
0137120 \0 \n \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 ! \0 \0
0137140 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 020 \0
0137160 \0 \0 \0 006 \0 \0 \0 . \0 \0 \0 \0 \a \0 \0 \0
0137200 002 \0 \0 \0 \0 \t \0 \0 \0 \f \0 \0 \0 \0 \b \0
0137220 \0 \0 002 \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002 \0 \n
0137240 \0 \0 \0 , \0 \0 \0 \0 \t \0 \0 \0 004 \0 \0 \0
0137260 \0 \a \0 \0 \0 # \0 \0 \0 \0 \t \0 \0 \0 \v \0
0137300 \0 \0 \0 \a \0 \0 \0 > \0 \0 \0 \0 \t \0 \0 \0
0137320 \0 \0 002 \0 \n \0 \0 \0 \n \0 \0 \0 \0 \t \0 \0
0137340 \0 \a \0 \0 \0 \0 \a \0 \0 \0 001 \0 \0 \0 \0 \t
0137360 \0 \0 \0 005 \0 \0 \0 \0 \a \0 \0 \0 \f \0 \0 \0
0137400 \0 \t \0 \0 \0 \0 \0 002 \0 \n \0 \0 \0 \n \0 \0
0137420 \0 \0 006 \0 \0 \0 021 \0 \0 \0 \0 \a \0 \0 \0 001
0137440 \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0
0137460 006 \0 \0 \0 \0 \t \0 \0 \0 \t \0 \0 \0 \0 \a \0
0137500 \0 \0 N \0 \0 \0 \0 \t \0 \0 \0 \t \0 \0 \0 \0
0137520 \a \0 \0 \0 P \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002
0137540 \0 \n \0 \0 \0 020 \0 \0 \0 \0 006 \0 \0 \0 \v \0
0137560 \0 \0 \0 \a \0 \0 \0 001 \0 \0 \0 \0 \t \0 \0 \0
0137600 \0 \0 002 \0 \b \0 \0 \0 \n \0 \0 \0 \0 \a \0 \0
0137620 \0 & \0 \0 \0 \0 \t \0 \0 \0 \b \0 \0 \0 \0 \a
0137640 \0 \0 \0 202 \0 \0 \0 \0 \t \0 \0 \0 016 \0 \0 \0
0137660 \0 \a \0 \0 \0 004 \0 \0 \0 \0 \t \0 \0 \0 003 \0
0137700 \0 \0 \0 \a \0 \0 \0 002 \0 \0 \0 \0 \t \0 \0 \0
0137720 031 \0 \0 \0 \0 005 \0 \0 \0 020 \0 \0 \0 \0 004 \0
0137740 \0 \0 e \0 \0 \0 \0 005 \0 \0 \0 017 \0 \0 \0 \0
0137760 004 \0 \0 \0 034 \0 \0 \0 \0 005 \0 \0 \0 016 \0 \0
0140000 \0 \0 004 \0 \0 \0 004 \0 \0 \0 \0 005 \0 \0 \0 003
0140020 \0 \0 \0 \0 004 \0 \0 \0 \a \0 \0 \0 \0 005 \0 \0
0140040 \0 001 \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002 \0 \n \0
0140060 \0 \0 \a \0 \0 \0 \0 006 \0 \0 \0 005 \0 \0 \0 \0
0140100 \a \0 \0 \0 001 \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002
0140120 \0 \b \0 \0 \0 020 \0 \0 \0 \0 \t \0 \0 \0 020 \0
0140140 \0 \0 \0 \a \0 \0 \0 035 \0 \0 \0 \0 \t \0 \0 \0
0140160 \0 \0 002 \0 \b \0 \0 \0 003 \0 \0 \0 \0 \t \0 \0
0140200 \0 004 \0 \0 \0 \0 \a \0 \0 \0 + \0 \0 \0 \0 \t
0140220 \0 \0 \0 020 \0 \0 \0 \0 \a \0 \0 \0 001 \0 \0 \0
0140240 \0 \t \0 \0 \0 3 \0 \0 \0 \0 \a \0 \0 \0 ! \0
0140260 \0 \0 \0 \t \0 \0 \0 < \0 \0 \0 \0 \a \0 \0 \0
0140300 306 \0 \0 \0 \0 \t \0 \0 \0 \t \0 \0 \0 \0 \a \0
0140320 \0 \0 002 \0 \0 \0 \0 \t \0 \0 \0 026 \0 \0 \0 \0
0140340 005 \0 \0 \0 \a \0 \0 \0 \0 004 \0 \0 \0 - \0 \0
0140360 \0 \0 005 \0 \0 \0 \t \0 \0 \0 \0 004 \0 \0 \0 033
0140400 \0 \0 \0 \0 005 \0 \0 \0 022 \0 \0 \0 \0 004 \0 \0
0140420 \0 016 \0 \0 \0 \0 005 \0 \0 \0 5 \0 \0 \0 \0 004
0140440 \0 \0 \0 020 \0 \0 \0 \0 005 \0 \0 \0 _ \0 \0 \0
0140460 \0 004 \0 \0 \0 \a \0 \0 \0 \0 005 \0 \0 \0 001 \0
0140500 \0 \0 \0 \t \0 \0 \0 \0 \0 002 \0 \n \0 \0 \0 \a
0140520 \0 \0 \0 \0 006 \0 \0 \0 005 \0 \0 \0 \0 \a \0 \0
0140540 \0 001 \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002 \0 \b \0
0140560 \0 \0 c \0 \0 \0 \0 \t \0 \0 \0 004 \0 \0 \0 \0
0140600 \a \0 \0 \0 017 \0 \0 \0 \0 \t \0 \0 \0 \t \0 \0
0140620 \0 \0 \a \0 \0 \0 / \0 \0 \0 \0 \t \0 \0 \0 \n
0140640 \0 \0 \0 \0 005 \0 \0 \0 \f \0 \0 \0 \0 004 \0 \0
0140660 \0 024 \0 \0 \0 \0 005 \0 \0 \0 031 \0 \0 \0 \0 004
0140700 \0 \0 \0 , \0 \0 \0 \0 005 \0 \0 \0 001 \0 \0 \0
0140720 \0 \t \0 \0 \0 \0 \0 002 \0 \n \0 \0 \0 037 \0 \0
0140740 \0 \0 \t \0 \0 \0 020 \0 \0 \0 \0 \a \0 \0 \0 005
0140760 \0 \0 \0 \0 \t \0 \0 \0 \a \0 \0 \0 \0 \a \0 \0
0141000 \0 \r \0 \0 \0 \0 \t \0 \0 \0 020 \0 \0 \0 \0 \a
0141020 \0 \0 \0 \r \0 \0 \0 \0 \t \0 \0 \0 020 \0 \0 \0
0141040 \0 \a \0 \0 \0 005 \0 \0 \0 \0 \t \0 \0 \0 \a \0
0141060 \0 \0 \0 \a \0 \0 \0 ` \0 \0 \0 \0 \t \0 \0 \0
0141100 \v \0 \0 \0 \0 \a \0 \0 \0 002 \0 \0 \0 \0 \t \0
0141120 \0 \0 x \0 \0 \0 \0 005 \0 \0 \0 001 \0 \0 \0 \0
0141140 \t \0 \0 \0 \0 \0 002 \0 \n \0 \0 \0 005 \0 \0 \0
0141160 \0 \a \0 \0 \0 016 \0 \0 \0 \0 \t \0 \0 \0 020 \0
0141200 \0 \0 \0 \b \0 \0 \0 e \0 \0 \0 \0 \t \0 \0 \0
0141220 \v \0 \0 \0 \0 \a \0 \0 \0 027 \0 \0 \0 \0 \t \0
0141240 \0 \0 020 \0 \0 \0 \0 \b \0 \0 \0 034 \0 \0 \0 \0
0141260 \t \0 \0 \0 \t \0 \0 \0 \0 \a \0 \0 \0 * \0 \0
0141300 \0 \0 \t \0 \0 \0 N \0 \0 \0 \0 005 \0 \0 \0 \n
0141320 \0 \0 \0 \0 004 \0 \0 \0 \a \0 \0 \0 \0 005 \0 \0
0141340 \0 001 \0 \0 \0 \0 \t \0 \0 \0 \0 \0 002 \0 \n \0
0141360 \0 \0 016 \0 \0 \0 \0 \a \0 \0 \0 217 \0 \0 \0 \0
0141400 \t \0 \0 \0 \0 \0 002 \0 \n \0 \0 \0 = \0 \0 \0
0141420 \0 \t \0 \0 \0 \t \0 \0 \0 \0 \a \0 \0 \0 017 \0
0141440 \0 \0 \0 \t \0 \0 \0 \0 \0 002 \0 \v \0 \0 \0 .
0141460 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 \t \0 \0 \0
0141500 * \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 \t \0 \0
0141520