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