$ 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