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