$ od -c -N 50000 [Erinyes]<LispManual>FPtypes.im!10 0000000 \r \r \r { B e g i n S u b S e c 0000020 F i l e P a c k a g e T y 0000040 p e s } \r { T i t l e F i l e 0000060 P a c k a g e T y p e s } \r 0000100 { T e x t \r \r \r { T a g F i l 0000120 e P k g T y p e s } \r \r { i n d 0000140 e x * P R I M A R Y * F i l 0000160 e p a c k a g e t y p e s } 0000200 \r \r \r I n a d d i t i o n t 0000220 o t h e d e f i n i t i o n 0000240 s o f f u n c t i o n s a 0000260 n d v a l u e s o f v a r 0000300 i a b l e s , s o u r c e f 0000320 i l e s i n I n t e r l i s 0000340 p c a n c o n t a i n a 0000360 v a r i e t y o f o t h e r 0000400 i n f o r m a t i o n , e . 0000420 g . p r o p e r t y l i s t 0000440 s , r e c o r d d e c l a r 0000460 a t i o n s , m a c r o d e 0000500 f i n i t i o n s , h a s h 0000520 a r r a y s , e t c . I n 0000540 o r d e r t o t r e a t 0000560 s u c h a d i v e r s e a 0000600 s s o r t m e n t o f d a t 0000620 a u n i f o r m l y f r o m 0000640 t h e s t a n d p o i n t 0000660 o f f i l e o p e r a t i o 0000700 n s , t h e f i l e p a c 0000720 k a g e u s e s t h e c o 0000740 n c e p t o f a { i t t 0000760 y p e d d e f i n i t i o n } 0001000 , o f w h i c h a f u n 0001020 c t i o n d e f i n i t i o n 0001040 i s j u s t o n e e x a 0001060 m p l e . A t y p e d d 0001100 e f i n i t i o n a s s o c i 0001120 a t e s w i t h a n a m e 0001140 ( u s u a l l y a l i t a 0001160 t o m ) , a d e f i n i t i 0001200 o n o f a g i v e n t y 0001220 p e ( c a l l e d t h e f 0001240 i l e p a c k a g e t y p e 0001260 ) . N o t e t h a t t h 0001300 e s a m e n a m e m a y 0001320 h a v e s e v e r a l d e f 0001340 i n i t i o n s o f d i f f 0001360 e r e n t t y p e s . F o 0001400 r e x a m p l e , a l i t 0001420 a t o m m a y h a v e b o 0001440 t h a f u n c t i o n d e 0001460 f i n i t i o n a n d a v 0001500 a r i a b l e d e f i n i t i 0001520 o n . T h e f i l e p a 0001540 c k a g e a l s o k e e p s 0001560 t r a c k o f t h e f i 0001600 l e t h a t a p a r t i c 0001620 u l a r t y p e d d e f i n 0001640 i t i o n i s s t o r e d 0001660 o n , s o o n e c a n t 0001700 h i n k o f a t y p e d 0001720 d e f i n i t i o n a s a 0001740 r e l a t i o n b e t w e e n 0001760 f o u r e l e m e n t s : 0002000 a n a m e , a d e f i n i 0002020 t i o n , a t y p e , a n 0002040 d a f i l e . \r \r \r A f i 0002060 l e p a c k a g e t y p e 0002100 i s a n a b s t r a c t n 0002120 o t i o n o f a c l a s s 0002140 o f o b j e c t s w h i c 0002160 h s h a r e t h e p r o p 0002200 e r t y t h a t e v e r y 0002220 o b j e c t o f t h e s a 0002240 m e f i l e p a c k a g e 0002260 t y p e i s s t o r e d , 0002300 r e t r i e v e d , e d i t e 0002320 d , c o p i e d e t c . , 0002340 b y t h e f i l e p a c k 0002360 a g e i n t h e s a m e 0002400 w a y . E a c h f i l e 0002420 p a c k a g e t y p e i s 0002440 i d e n t i f i e d b y a 0002460 l i t a t o m , w h i c h c 0002500 a n b e g i v e n a s a 0002520 n a r g u m e n t t o t h 0002540 e f u n c t i o n s t h a t 0002560 m a n i p u l a t e t y p e 0002600 d d e f i n i t i o n s . 0002620 T h e u s e r m a y d e f 0002640 i n e n e w f i l e p a c 0002660 k a g e t y p e s , a s d 0002700 e s c r i b e d i n { P a g 0002720 e R e f F n F I L E P K G T 0002740 Y P E } . \r \r \r \r { V a r D e f 0002760 { N a m e F I L E P K G T Y 0003000 P E S } \r { T e x t \r T h e v 0003020 a l u e o f { v a r F I L 0003040 E P K G T Y P E S } i s a 0003060 l i s t o f a l l f i l e 0003100 p a c k a g e t y p e s , 0003120 i n c l u d i n g a n y t h 0003140 a t m a y h a v e b e e n 0003160 d e f i n e d b y t h e 0003200 u s e r . \r } } \r \r \r \r T h e 0003220 f i l e p a c k a g e i s 0003240 i n i t i a l i z e d w i t h 0003260 t h e f o l l o w i n g b 0003300 u i l t - i n f i l e p a c 0003320 k a g e t y p e s : \r \r \r { D 0003340 e f { T y p e ( F i l e P 0003360 a c k a g e T y p e ) } { N 0003400 a m e A D V I C E } \r { T e x 0003420 t \r U s e d t o a c c e s s 0003440 " a d v i c e " m o d i f y 0003460 i n g a f u n c t i o n ( 0003500 s e e { P a g e R e f T e r 0003520 m A d v i s i n g f u n c t 0003540 i o n s } ) . \r } } \r \r { D e f 0003560 { T y p e ( F i l e P a c 0003600 k a g e T y p e ) } { N a m 0003620 e A L I S T S } \r { T e x t \r 0003640 U s e d t o a c c e s s o 0003660 b j e c t s s t o r e d o n 0003700 a n a s s o c i a t i o n 0003720 l i s t t h a t i s t h e 0003740 v a l u e o f a l i t a 0003760 t o m ( s e e { P a g e R e 0004000 f T e r m A s s o c i a t i 0004020 o n l i s t s } ) . \r \r A v 0004040 a r i a b l e i s d e c l a 0004060 r e d t o h a v e a n a 0004100 s s o c i a t i o n l i s t 0004120 a s i t s v a l u e b y 0004140 p u t t i n g o n i t s p 0004160 r o p e r t y l i s t t h e 0004200 p r o p e r t y { i n d e x 0004220 * P R I M A R Y * V A R T Y 0004240 P E P r o p } { p r o p V A 0004260 R T Y P E } w i t h v a l u 0004300 e { l i s p A L I S T } . 0004320 I n t h i s c a s e , e 0004340 a c h d o t t e d p a i r 0004360 o n t h e l i s t i s a 0004400 n o b j e c t o f t y p e 0004420 { l i s p A L I S T S } . 0004440 W h e n t h e v a l u e 0004460 o f s u c h a v a r i a b 0004500 l e i s c h a n g e d , o 0004520 n l y t h o s e e n t r i e 0004540 s i n t h e a s s o c i a 0004560 t i o n l i s t t h a t a 0004600 r e a c t u a l l y c h a n 0004620 g e d o r a d d e d a r e 0004640 m a r k e d a s c h a n g 0004660 e d o b j e c t s o f t y 0004700 p e { l i s p A L I S T S } 0004720 ( w i t h " n a m e " { l 0004740 i s p ( { a r g L I T A T O 0004760 M } { a r g K E Y } ) } ) . 0005000 O b j e c t s o f t y p 0005020 e { l i s p A L I S T S } 0005040 a r e d u m p e d v i a t 0005060 h e { f i l e c o m A L I S 0005100 T S } o r { f i l e c o m 0005120 A D D V A R S } f i l e p a 0005140 c k a g e c o m m a n d s . \r 0005160 \r N o t e t h a t s o m e 0005200 a s s o c i a t i o n l i s t 0005220 s a r e u s e d t o " i 0005240 m p l e m e n t " o t h e r 0005260 f i l e p a c k a g e t y p 0005300 e s . F o r e x a m p l e 0005320 , t h e v a l u e o f t 0005340 h e g l o b a l v a r i a b 0005360 l e { v a r U S E R M A C R 0005400 O S } i m p l e m e n t s t 0005420 h e f i l e p a c k a g e 0005440 t y p e { l i s p U S E R M 0005460 A C R O S } a n d t h e v 0005500 a l u e s o f { v a r L I 0005520 S P X M A C R O S } a n d { 0005540 v a r L I S P X H I S T O R Y 0005560 M A C R O S } i m p l e m e n 0005600 t t h e f i l e p a c k a 0005620 g e t y p e { l i s p L I 0005640 S P X M A C R O S } . T h i 0005660 s i s i n d i c a t e d b 0005700 y p u t t i n g o n t h e 0005720 p r o p e r t y l i s t o 0005740 f t h e v a r i a b l e t 0005760 h e p r o p e r t y { p r o 0006000 p V A R T Y P E } w i t h 0006020 v a l u e a l i s t o f 0006040 t h e f o r m { l i s p ( 0006060 A L I S T { a r g F I L E P 0006100 K G T Y P E } ) } . F o r 0006120 e x a m p l e , { l i s p ( 0006140 G E T P R O P ' L I S P X H I 0006160 S T O R Y M A C R O S ' V A R 0006200 T Y P E ) = > ( A L I S 0006220 T L I S P X M A C R O S ) } . 0006240 \r } } \r \r \r { D e f { T y p e 0006260 ( F i l e P a c k a g e T 0006300 y p e ) } { N a m e C O U R 0006320 I E R P R O G R A M S } \r { T e 0006340 x t \r U s e d t o a c c e s 0006360 s C o u r i e r p r o g r a 0006400 m s ( s e e { P a g e R e f 0006420 T e r m C o u r i e r p r 0006440 o g r a m s } ) . \r } } \r \r \r { 0006460 D e f { T y p e ( F i l e 0006500 P a c k a g e T y p e ) } { 0006520 N a m e E X P R E S S I O N S 0006540 } \r { T e x t \r U s e d t o 0006560 a c c e s s l i s p e x p r 0006600 e s s i o n s t h a t a r e 0006620 p u t o n a f i l e b 0006640 y u s i n g t h e { p a c 0006660 o m R E M E M B E R } p r o 0006700 g r a m m e r s a s s i s t a 0006720 n t c o m m a n d ( { P a g 0006740 e R e f P A C o m R E M E M 0006760 B E R } ) , o r b y e x p 0007000 l i c i t l y p u t t i n g 0007020 t h e { f i l e c o m P } 0007040 f i l e p a c k a g e c o m 0007060 m a n d ( { P a g e R e f F 0007100 i l e C o m P } ) o n t h 0007120 e f i l e c o m s . \r } } \r 0007140 \r \r { D e f { T y p e ( F i 0007160 l e P a c k a g e T y p e ) 0007200 } { N a m e F I E L D S } \r 0007220 { T e x t \r U s e d t o a c 0007240 c e s s f i e l d s o f r 0007260 e c o r d s . T h e " d e 0007300 f i n i t i o n " o f a n 0007320 o b j e c t o f t y p e { 0007340 l i s p F I E L D S } i s 0007360 a l i s t o f a l l t h 0007400 e r e c o r d d e c l a r a 0007420 t i o n s w h i c h c o n t 0007440 a i n t h e n a m e . 0007460 S e e { P a g e R e f T e r 0007500 m R e c o r d P a c k a g e 0007520 } . \r } } \r \r { D e f { T y p 0007540 e ( F i l e P a c k a g e 0007560 T y p e ) } { N a m e F I L 0007600 E P K G C O M S } \r { T e x t \r 0007620 U s e d t o a c c e s s f 0007640 i l e p a c k a g e c o m m 0007660 a n d s a n d t y p e s . 0007700 A s i n g l e n a m e c 0007720 a n b e d e f i n e d b o 0007740 t h a s a f i l e p a c 0007760 k a g e t y p e a n d a 0010000 f i l e p a c k a g e c o m 0010020 m a n d . T h e " d e f i 0010040 n i t i o n " o f a n o b 0010060 j e c t o f t y p e { l i 0010100 s p F I L E P K G C O M S } 0010120 i s a l i s t s t r u c t 0010140 u r e o f t h e f o r m 0010160 { l i s p ( ( C O M . { a 0010200 r g C O M P R O P S } ) ( T 0010220 Y P E . { a r g T Y P E P 0010240 R O P S } ) ) } , w h e r e 0010260 { a r g C O M P R O P S } i 0010300 s a p r o p e r t y l i s 0010320 t s p e c i f y i n g h o w 0010340 t h e n a m e i s d e f 0010360 i n e d a s a f i l e p 0010400 a c k a g e c o m m a n d b 0010420 y { f n F I L E P K G C O M 0010440 } ( { P a g e R e f F n F 0010460 I L E P K G C O M } ) , a n d 0010500 { a r g T Y P E P R O P S } 0010520 i s a p r o p e r t y l 0010540 i s t s p e c i f y i n g h 0010560 o w t h e n a m e i s d 0010600 e f i n e d a s a f i l e 0010620 p a c k a g e t y p e b y 0010640 { f n F I L E P K G T Y P E 0010660 } ( { P a g e R e f F n F 0010700 I L E P K G T Y P E } ) . \r } } 0010720 \r \r { D e f { T y p e ( F i 0010740 l e P a c k a g e T y p e ) 0010760 } { N a m e F I L E S } \r { 0011000 T e x t \r U s e d t o a c c 0011020 e s s f i l e s . T h i s 0011040 f i l e p a c k a g e t y 0011060 p e i s m o s t u s e f u 0011100 l f o r r e n a m i n g f 0011120 i l e s . T h e " d e f i 0011140 n i t i o n " o f a f i l 0011160 e i s n o t a u s e f u 0011200 l s t r u c t u r e . \r \r { B 0011220 e g i n N o t e } \r D a t e : 0011240 1 6 O c t 1 9 7 8 1 : 4 0011260 2 p m ( M o n d a y ) \r F r 0011300 o m : M a s i n t e r \r \r ( i 0011320 m p l e m e n t a t i o n c h 0011340 a n g e ) \r G E T D E F ( X F 0011360 I L E S ) n o w r e t u r n 0011400 s a m o r e c o m p l i c 0011420 a t e d d a t a s t r u c t 0011440 u r e t h a n b e f o r e 0011460 ( i t u s e d t o j u s t 0011500 r e t u r n t h e C O M S 0011520 f o r t h e f i l e , n 0011540 o w t h e v a l u e o f 0011560 G E T D E F i n c l u d e s 0011600 p a r t o f t h e F I L E 0011620 a n d F I L E D A T E S p 0011640 r o p e r t y o f X ) . \r \r 0011660 P U T D E F ( X F I L E D E 0011700 F I N I T I O N ) w i l l M 0011720 A K E F I L E ( X ) c o p y i 0011740 n g f u n c t i o n s i f \r 0011760 n e c e s s a r y f r o m t 0012000 h e " o l d " f i l e ( s 0012020 u p p l i e d a s p a r t 0012040 o f t h e D E F I N I T I O 0012060 N ) . \r \r T h i s c h a n g e 0012100 s h o u l d n o t a f f e 0012120 c t a n y u s e r s ( t h 0012140 e o n l y u s e I h a v 0012160 e e v e r \r m a d e o f F 0012200 I L E S a s a t y p e i 0012220 s t o r e n a m e t h e m 0012240 ) ; i t m a d e i t p o 0012260 s s i b l e t o r e m o v e 0012300 a s p e c i a l c h e c k 0012320 i n t h e C O P Y D E F 0012340 f u n c t i o n t o h a n d 0012360 l e t h i s c a s e . \r { E 0012400 n d N o t e } \r } } \r \r \r { D 0012420 e f { T y p e ( F i l e P 0012440 a c k a g e T y p e ) } { N 0012460 a m e F I L E V A R S } \r { T 0012500 e x t \r U s e d t o a c c e 0012520 s s F i l e v a r s ( s e e 0012540 { P a g e R e f T e r m F 0012560 i l e V a r s } ) . \r } } \r \r \r 0012600 { D e f { T y p e ( F i l e 0012620 P a c k a g e T y p e ) } 0012640 { N a m e F N S } \r { T e x t 0012660 \r U s e d t o a c c e s s 0012700 f u n c t i o n d e f i n i t 0012720 i o n s . \r } } \r \r { D e f { 0012740 T y p e ( F i l e P a c k a 0012760 g e T y p e ) } { N a m e 0013000 I . S . O P R S } \r { T e x t \r 0013020 U s e d t o a c c e s s t 0013040 h e d e f i n i t i o n s o 0013060 f i t e r a t i v e s t a t 0013100 e m e n t o p e r a t o r s 0013120 ( s e e { P a g e R e f T e 0013140 r m I t e r a t i v e s t a 0013160 t e m e n t s } ) . \r } } \r \r { 0013200 D e f { T y p e ( F i l e 0013220 P a c k a g e T y p e ) } { 0013240 N a m e L I S P X M A C R O S 0013260 } \r { T e x t \r U s e d t o 0013300 a c c e s s p r o g r a m m e 0013320 r ' s a s s i s t a n t c o 0013340 m m a n d s d e f i n e d o 0013360 n t h e v a r i a b l e s 0013400 { l i s p L I S P X M A C R O 0013420 S } a n d { v a r L I S P 0013440 X H I S T O R Y M A C R O S } 0013460 ( s e e { P a g e R e f V a 0013500 r L I S P X M A C R O S } ) . 0013520 \r } } \r \r { D e f { T y p e 0013540 ( F i l e P a c k a g e T y 0013560 p e ) } { N a m e M A C R O 0013600 S } \r { T e x t \r U s e d t o 0013620 a c c e s s m a c r o d e 0013640 f i n i t i o n s ( s e e { 0013660 P a g e R e f T e r m M a c 0013700 r o s } ) . \r } } \r \r { D e f 0013720 { T y p e ( F i l e P a c k 0013740 a g e T y p e ) } { N a m e 0013760 P R O P S } \r { T e x t \r U s 0014000 e d t o a c c e s s o b j 0014020 e c t s s t o r e d o n t 0014040 h e p r o p e r t y l i s t 0014060 o f a l i t a t o m ( s 0014100 e e { P a g e R e f T e r m 0014120 P r o p e r t i e s o f l 0014140 i t a t o m s } ) . W h e n 0014160 a p r o p e r t y i s c 0014200 h a n g e d o r a d d e d , 0014220 a n o b j e c t o f t y 0014240 p e { l i s p P R O P S } , 0014260 w i t h " n a m e " { l i 0014300 s p ( { a r g L I T A T O M 0014320 } { a r g P R O P N A M E } 0014340 ) } i s m a r k e d a s 0014360 b e i n g c h a n g e d . \r \r 0014400 N o t e t h a t s o m e l 0014420 i t a t o m p r o p e r t i e 0014440 s a r e u s e d t o i m 0014460 p l e m e n t o t h e r f i 0014500 l e p a c k a g e t y p e s 0014520 . F o r e x a m p l e , 0014540 t h e p r o p e r t y { p r 0014560 o p M A C R O } i m p l e m 0014600 e n t s t h e f i l e p a 0014620 c k a g e t y p e { l i s p 0014640 M A C R O S } , t h e p r 0014660 o p e r t y { p r o p A D V 0014700 I C E } i m p l e m e n t s 0014720 { l i s p A D V I C E } , e 0014740 t c . T h i s i s i n d 0014760 i c a t e d b y p u t t i n 0015000 g t h e p r o p e r t y { 0015020 p r o p P R O P T Y P E } , { 0015040 i n d e x * P R I M A R Y * 0015060 P R O P T Y P E P r o p } w 0015100 i t h v a l u e o f t h e 0015120 f i l e p a c k a g e t y 0015140 p e o n t h e p r o p e r 0015160 t y l i s t o f t h e p 0015200 r o p e r t y n a m e . F 0015220 o r e x a m p l e , { l i s 0015240 p ( G E T P R O P ' M A C R 0015260 O ' P R O P T Y P E ) = > 0015300 M A C R O S } . W h e n 0015320 s u c h a p r o p e r t y 0015340 i s c h a n g e d o r a 0015360 d d e d , a n o b j e c t 0015400 o f t h e c o r r e s p o n 0015420 d i n g f i l e p a c k a g 0015440 e t y p e i s m a r k e d 0015460 . I f { l i s p ( G E T 0015500 P R O P { a r g P R O P N A 0015520 M E } ' P R O P T Y P E ) 0015540 = > I G N O R E } , t h e 0015560 c h a n g e i s i g n o r 0015600 e d . T h e { p r o p F 0015620 I L E } , { p r o p F I L E 0015640 M A P } , { p r o p F I L E 0015660 D A T E S } , e t c . p r o 0015700 p e r t i e s a r e a l l 0015720 h a n d l e d t h i s w a y 0015740 . ( N o t e t h a t { l 0015760 i s p I G N O R E } c a n n 0016000 o t b e t h e n a m e o 0016020 f a f i l e p a c k a g e 0016040 t y p e i m p l e m e n t e 0016060 d a s a p r o p e r t y ) 0016100 . \r } } \r \r { D e f { T y 0016120 p e ( F i l e P a c k a g e 0016140 T y p e ) } { N a m e R E 0016160 C O R D S } \r { T e x t \r U s e 0016200 d t o a c c e s s r e c o 0016220 r d d e c l a r a t i o n s 0016240 ( s e e { P a g e R e f T e 0016260 r m R e c o r d P a c k a g 0016300 e } ) . \r } } \r \r \r { D e f { 0016320 T y p e ( F i l e P a c k a 0016340 g e T y p e ) } { N a m e 0016360 R E S O U R C E S } \r { T e x t 0016400 \r U s e d t o a c c e s s 0016420 r e s o u r c e s ( s e e { 0016440 P a g e R e f T e r m R e s 0016460 o u r c e s } ) . \r } } \r \r { D 0016500 e f { T y p e ( F i l e P 0016520 a c k a g e T y p e ) } { N 0016540 a m e T E M P L A T E S } \r { 0016560 T e x t \r U s e d t o a c c 0016600 e s s M a s t e r s c o p e 0016620 t e m p l a t e s ( s e e { 0016640 P a g e R e f T e r m M a s 0016660 t e r s c o p e T e m p l a t 0016700 e s } ) . \r } } \r \r { D e f { 0016720 T y p e ( F i l e P a c k a 0016740 g e T y p e ) } { N a m e 0016760 U S E R M A C R O S } \r { T e x 0017000 t \r U s e d t o a c c e s s 0017020 u s e r e d i t m a c r o 0017040 s ( s e e { P a g e R e f 0017060 T e r m E d i t M a c r o s 0017100 } ) . \r } } \r \r \r { D e f { T 0017120 y p e ( F i l e P a c k a g 0017140 e T y p e ) } { N a m e V 0017160 A R S } \r { T e x t \r U s e d 0017200 t o a c c e s s t o p - l e 0017220 v e l v a r i a b l e v a l 0017240 u e s . \r } } \r \r \r \r { B e g i 0017260 n N o t e } \r d o c s y n o 0017300 n y m s ? ? ? \r \r s y n o n y m 0017320 s f o r f i l e p a c k a 0017340 g e t y p e s : \r ( L I S P X 0017360 C O M S . L I S P X M A C R 0017400 O S ) \r ( F I L E P K G T Y P E 0017420 S . F I L E P K G C O M S ) 0017440 \r ( E D I T M A C R O S . U 0017460 S E R M A C R O S ) \r { E n d 0017500 N o t e } \r \r \r \r \r { B e g i n 0017520 S u b S e c F u n c t i o n 0017540 s f o r M a n i p u l a t i 0017560 n g T y p e d D e f i n i t 0017600 i o n s } \r { T i t l e F u n 0017620 c t i o n s f o r M a n i p 0017640 u l a t i n g T y p e d D e 0017660 f i n i t i o n s } \r { T e x t 0017700 \r \r T h e f u n c t i o n s 0017720 d e s c r i b e d b e l o w 0017740 c a n b e u s e d t o m 0017760 a n i p u l a t e t y p e d 0020000 d e f i n i t i o n s , w i t 0020020 h o u t n e e d i n g t o 0020040 k n o w h o w t h e m a n 0020060 i p u l a t i o n s a r e d 0020100 o n e . F o r e x a m p l 0020120 e , { l i s p ( G E T D E F 0020140 ' F O O ' F N S ) } w i l 0020160 l r e t u r n t h e f u n 0020200 c t i o n d e f i n i t i o n 0020220 o f { l i s p F O O } , 0020240 { l i s p ( G E T D E F ' F 0020260 O O ' V A R S ) } w i l l 0020300 r e t u r n t h e v a r i a 0020320 b l e v a l u e o f { l i 0020340 s p F O O } , e t c . A 0020360 l l o f t h e f u n c t i 0020400 o n s u s e t h e f o l l 0020420 o w i n g c o n v e n t i o n 0020440 s : \r \r ( 1 ) A l l f u n 0020460 c t i o n s w h i c h m a k 0020500 e d e s t r u c t i v e c h 0020520 a n g e s a r e u n d o a b 0020540 l e . \r \r ( 2 ) A n y a r 0020560 g u m e n t t h a t e x p e 0020600 c t s a l i s t o f l i 0020620 t a t o m s w i l l a l s o 0020640 a c c e p t a s i n g l e 0020660 l i t a t o m , o p e r a t 0020700 i n g a s t h o u g h i t 0020720 w e r e e n c l o s e d i 0020740 n a l i s t . F o r e 0020760 x a m p l e , i f t h e a 0021000 r g u m e n t { a r g F I L 0021020 E S } s h o u l d b e a 0021040 l i s t o f f i l e s , i 0021060 t m a y a l s o b e a 0021100 s i n g l e f i l e . \r \r \r ( 0021120 3 ) { a r g T Y P E } i 0021140 s a f i l e p a c k a g e 0021160 t y p e . { a r g T Y P 0021200 E } = { l i s p N I L } i s 0021220 e q u i v a l e n t t o { 0021240 a r g T Y P E } = { l i s p 0021260 F N S } . T h e s i n g u 0021300 l a r f o r m o f a f i 0021320 l e p a c k a g e t y p e 0021340 i s a l s o r e c o g n i z 0021360 e d , e . g . { a r g T Y 0021400 P E } = { l i s p V A R } i 0021420 s e q u i v a l e n t t o 0021440 { a r g T Y P E } = { l i s p 0021460 V A R S } . \r \r \r ( 4 ) { 0021500 a r g F I L E S } = { l i s p 0021520 N I L } i s e q u i v a l 0021540 e n t t o { a r g F I L E 0021560 S } = { v a r F I L E L S T } 0021600 . \r \r \r ( 5 ) { a r g S O 0021620 U R C E } i s u s e d t o 0021640 i n d i c a t e t h e s o 0021660 u r c e o f a d e f i n i 0021700 t i o n , t h a t i s , w 0021720 h e r e t h e d e f i n i t 0021740 i o n s h o u l d b e f o 0021760 u n d . { a r g S O U R C 0022000 E } c a n b e o n e o f 0022020 : \r \r { B e g i n L a b e l 0022040 e d L i s t S O U R C E } \r \r 0022060 { N a m e { l i s p C U R R 0022100 E N T } } \r { T e x t \r G e t 0022120 t h e d e f i n i t i o n c 0022140 u r r e n t l y i n e f f e 0022160 c t . \r } \r \r { N a m e { l i 0022200 s p S A V E D } } \r { T e x t 0022220 \r G e t t h e " s a v e d " 0022240 d e f i n i t i o n , a s 0022260 s t o r e d b y { f n S A 0022300 V E D E F } ( { P a g e R e f 0022320 F n S A V E D E F } ) . \r } 0022340 \r \r { N a m e { l i s p F I 0022360 L E } } \r { T e x t \r G e t t 0022400 h e d e f i n i t i o n c o 0022420 n t a i n e d o n t h e ( 0022440 f i r s t ) f i l e d e t e 0022460 r m i n e d b y { f n W H 0022500 E R E I S } ( { P a g e R e f 0022520 F n W H E R E I S } ) . 0022540 \r \r N o t e : { f n W H E 0022560 R E I S } i s c a l l e d 0022600 w i t h { a r g F I L E S } 0022620 = { l i s p T } , s o t h 0022640 a t i f t h e W H E R E I 0022660 S l i b r a r y p a c k a g 0022700 e i s l o a d e d , t h e 0022720 W H E R E I S d a t a b a 0022740 s e w i l l b e u s e d 0022760 t o f i n d t h e f i l e 0023000 c o n t a i n i n g t h e 0023020 d e f i n i t i o n . \r } \r \r { 0023040 N a m e { l i s p ? } } \r { 0023060 T e x t \r G e t t h e d e f 0023100 i n i t i o n c u r r e n t l 0023120 y i n e f f e c t i f t 0023140 h e r e i s o n e , e l s 0023160 e t h e s a v e d d e f i 0023200 n i t i o n i f t h e r e 0023220 i s o n e , o t h e r w i s 0023240 e t h e d e f i n i t i o n 0023260 f r o m a f i l e d e t 0023300 e r m i n e d b y { f n W 0023320 H E R E I S } . L i k e s 0023340 p e c i f y i n g { l i s p 0023360 C U R R E N T } , { l i s p 0023400 S A V E D } , a n d { l i s 0023420 p F I L E } i n o r d e r 0023440 , a n d t a k i n g t h e 0023460 f i r s t d e f i n i t i o 0023500 n t h a t i s f o u n d . 0023520 \r } \r \r { N a m e a f i l e 0023540 n a m e } \r { N a m e a l 0023560 i s t o f f i l e n a m e 0023600 s } \r { T e x t \r G e t t h e 0023620 d e f i n i t i o n f r o m 0023640 t h e f i r s t o f t h 0023660 e i n d i c a t e d f i l e 0023700 s t h a t c o n t a i n s 0023720 o n e . \r } \r \r { N a m e { l 0023740 i s p N I L } } \r { T e x t \r 0023760 I n m o s t c a s e s , g 0024000 i v i n g { a r g S O U R C 0024020 E } = { l i s p N I L } ( o 0024040 r n o t s p e c i f y i n g 0024060 i t a t a l l ) i s t 0024100 h e s a m e a s g i v i n 0024120 g { l i s p ? } , t o g 0024140 e t e i t h e r t h e c u 0024160 r r e n t , s a v e d , o r 0024200 f i l e d d e f i n i t i o 0024220 n . H o w e v e r , w i t 0024240 h { f n H A S D E F } , { 0024260 a r g S O U R C E } = { l i s 0024300 p N I L } i s i n t e r p 0024320 r e t e d a s e q u a l t 0024340 o { a r g S O U R C E } = { 0024360 l i s p C U R R E N T } , w 0024400 h i c h o n l y t e s t s 0024420 i f t h e r e i s a c u 0024440 r r e n t d e f i n i t i o n 0024460 . \r } \r \r { E n d L a b e l e 0024500 d L i s t S O U R C E } \r \r \r 0024520 { n o t e H A S D E F , G E 0024540 T D E F n o w o n l y a c 0024560 c e p t f i l e p a c k a g 0024600 e t y p e s ( n o t c o m 0024620 m a n d s ) , e . g . G E T 0024640 D E F ( F O O C O M S ) c a 0024660 u s e s e r r o r " C O M S 0024700 n o t f i l e p a c k a g 0024720 e t y p e " . } \r \r \r \r T h 0024740 e o p e r a t i o n o f m 0024760 o s t o f t h e f u n c t 0025000 i o n s d e s c r i b e d b 0025020 e l o w c a n b e c h a n 0025040 g e d o r e x t e n d e d 0025060 b y m o d i f y i n g t h e 0025100 a p p r o p r i a t e p r o 0025120 p e r t i e s f o r t h e 0025140 c o r r e s p o n d i n g f i 0025160 l e p a c k a g e t y p e 0025200 u s i n g t h e f u n c t i 0025220 o n { f n F I L E P K G T Y 0025240 P E } , d e s c r i b e d o 0025260 n { P a g e R e f F n F I 0025300 L E P K G T Y P E } . \r \r \r \r { 0025320 F n D e f { F n N a m e G E 0025340 T D E F } { F n A r g s N A 0025360 M E T Y P E S O U R C E O 0025400 P T I O N S } \r { T e x t \r R e 0025420 t u r n s t h e d e f i n i 0025440 t i o n o f { a r g N A M 0025460 E } , o f t y p e { a r g 0025500 T Y P E } , f r o m { a r 0025520 g S O U R C E } . F o r 0025540 m o s t t y p e s , { f n 0025560 G E T D E F } r e t u r n s 0025600 t h e e x p r e s s i o n w 0025620 h i c h w o u l d b e p r 0025640 e t t y p r i n t e d w h e 0025660 n d u m p i n g { a r g N 0025700 A M E } a s { a r g T Y P 0025720 E } . F o r e x a m p l e 0025740 , f o r { a r g T Y P E } 0025760 = { l i s p F N S } , a n 0026000 { l i s p E X P R } d e f i 0026020 n i t i o n i s r e t u r n 0026040 e d , f o r { a r g T Y P 0026060 E } = { l i s p V A R S } , 0026100 t h e v a l u e o f { a r 0026120 g N A M E } i s r e t u r 0026140 n e d , e t c . \r \r \r { a r g 0026160 O P T I O N S } i s a l 0026200 i s t w h i c h s p e c i f 0026220 i e s c e r t a i n o p t i 0026240 o n s : \r \r { B e g i n L a b 0026260 e l e d L i s t G E T D E F 0026300 o p t i o n s } \r \r { N a m e 0026320 { l i s p N O E R R O R } } \r 0026340 { T e x t \r { f n G E T D E F 0026360 } c a u s e s a n e r r o 0026400 r i f a n a p p r o p r i 0026420 a t e d e f i n i t i o n c 0026440 a n n o t b e f o u n d , 0026460 u n l e s s { a r g O P T I 0026500 O N S } i s o r c o n t a 0026520 i n s { l i s p N O E R R O 0026540 R } . I n t h i s c a s 0026560 e , { f n G E T D E F } r 0026600 e t u r n s t h e v a l u e 0026620 o f t h e { l i s p N U 0026640 L L D E F } f i l e p a c k 0026660 a g e t y p e p r o p e r t 0026700 y ( { P a g e R e f ( F i l 0026720 e P a c k a g e T y p e P 0026740 r o p e r t y ) N U L L D E F 0026760 } ) , u s u a l l y { l i s 0027000 p N I L } . \r } \r \r { N a m e 0027020 a s t r i n g } \r { T e x t 0027040 \r I f { a r g O P T I O N S 0027060 } i s o r c o n t a i n s 0027100 a s t r i n g , t h a t 0027120 s t r i n g w i l l b e r 0027140 e t u r n e d i f n o d e 0027160 f i n i t i o n i s f o u n 0027200 d ( a n d { l i s p N O E 0027220 R R O R } i s n o t a m o 0027240 n g t h e o p t i o n s ) . 0027260 T h e c a l l e r c a n 0027300 t h u s d e t e r m i n e 0027320 w h e t h e r a d e f i n i 0027340 t i o n w a s f o u n d , 0027360 e v e n f o r t y p e s f 0027400 o r w h i c h { l i s p N 0027420 I L } o r { l i s p N O B 0027440 I N D } a r e a c c e p t a 0027460 b l e d e f i n i t i o n s . 0027500 \r } \r \r { N a m e { l i s p 0027520 N O C O P Y } } \r { T e x t \r { 0027540 f n G E T D E F } r e t u r 0027560 n s a c o p y o f t h e 0027600 d e f i n i t i o n u n l e 0027620 s s { a r g O P T I O N S } 0027640 i s o r c o n t a i n s 0027660 { l i s p N O C O P Y } . \r } 0027700 \r \r { N a m e { l i s p E D 0027720 I T } } \r { T e x t \r I f { a 0027740 r g O P T I O N S } i s o 0027760 r c o n t a i n s { l i s p 0030000 E D I T } , { f n G E T D 0030020 E F } r e t u r n s a c o 0030040 p y o f t h e d e f i n i 0030060 t i o n u n l e s s i t i 0030100 s p o s s i b l e t o e d 0030120 i t t h e d e f i n i t i o 0030140 n " i n p l a c e . " W 0030160 i t h s o m e f i l e p a 0030200 c k a g e t y p e s , s u c 0030220 h a s f u n c t i o n s , 0030240 i t i s m e a n i n g f u l 0030260 ( a n d e f f i c i e n t ) 0030300 t o e d i t t h e d e f 0030320 i n i t i o n b y d e s t r 0030340 u c t i v e l y m o d i f y i 0030360 n g t h e l i s t s t r u 0030400 c t u r e , w i t h o u t c 0030420 a l l i n g { f n P U T D E 0030440 F } . H o w e v e r , s o 0030460 m e f i l e p a c k a g e 0030500 t y p e s ( l i k e r e c o 0030520 r d s ) n e e d t o b e 0030540 " i n s t a l l e d " w i t h 0030560 { f n P U T D E F } a f t 0030600 e r t h e y a r e e d i t 0030620 e d . T h e d e f a u l t 0030640 { l i s p E D I T D E F } 0030660 ( s e e { P a g e R e f ( F 0030700 i l e P a c k a g e T y p e 0030720 P r o p e r t y ) E D I T D 0030740 E F } ) c a l l s { f n G 0030760 E T D E F } w i t h { a r g 0031000 O P T I O N S } o f { l i 0031020 s p ( E D I T N O C O P Y ) 0031040 } , s o i t d o e s n ' t 0031060 u s e a c o p y u n l e 0031100 s s i t h a s t o , a n 0031120 d o n l y c a l l s { f n 0031140 P U T D E F } i f t h e 0031160 r e s u l t o f e d i t i n 0031200 g i s n o t { f n E Q U 0031220 A L } t o t h e o l d d 0031240 e f i n i t i o n . \r } \r \r { N 0031260 a m e { l i s p N O D W I M 0031300 } } \r { T e x t \r A { l i s p 0031320 F N S } d e f i n i t i o n 0031340 w i l l b e d w i m i f i 0031360 e d i f i t i s l i k e 0031400 l y t o c o n t a i n C L 0031420 I S P u n l e s s { a r g 0031440 O P T I O N S } i s o r c 0031460 o n t a i n s { l i s p N O 0031500 D W I M } . \r } \r \r \r { E n d 0031520 L a b e l e d L i s t G E T D 0031540 E F o p t i o n s } \r \r \r { n 0031560 o t e a d d i t i o n a l G 0031600 E T D E F o p t i o n s w h 0031620 i c h n e e d t o b e e 0031640 x p l a i n e d : S P E L L 0031660 , H A S D E F , F A S T , 0031700 A R G L I S T } \r \r } } \r \r \r \r 0031720 { F n D e f { F n N a m e P 0031740 U T D E F } { F n A r g s N 0031760 A M E T Y P E D E F I N I T 0032000 I O N R E A S O N } \r { T e x 0032020 t \r D e f i n e s { a r g N 0032040 A M E } o f t y p e { a r 0032060 g T Y P E } w i t h { a r 0032100 g D E F I N I T I O N } . 0032120 F o r { a r g T Y P E } = { 0032140 l i s p F N S } , d o e s 0032160 a { f n D E F I N E } ; f 0032200 o r { a r g T Y P E } = { l 0032220 i s p V A R S } , d o e s 0032240 a { f n S A V E S E T } , 0032260 e t c . \r \r F o r { a r g T 0032300 Y P E } = { l i s p F I L E S 0032320 } , { f n P U T D E F } e 0032340 s t a b l i s h e s t h e c 0032360 o m m a n d l i s t , n o t 0032400 i c e s { a r g N A M E } , 0032420 a n d t h e n c a l l s 0032440 { f n M A K E F I L E } t o 0032460 a c t u a l l y d u m p t 0032500 h e f i l e { a r g N A M 0032520 E } , c o p y i n g f u n c 0032540 t i o n s i f n e c e s s a 0032560 r y f r o m t h e " o l d 0032600 " f i l e ( s u p p l i e d 0032620 a s p a r t o f { a r g 0032640 D E F I N I T I O N } ) . \r \r 0032660 { f n P U T D E F } c a l l 0032700 s { f n M A R K A S C H A N 0032720 G E D } ( { P a g e R e f F 0032740 n M A R K A S C H A N G E D } 0032760 ) t o m a r k { a r g N 0033000 A M E } a s c h a n g e d , 0033020 g i v i n g a r e a s o n 0033040 o f { a r g R E A S O N } 0033060 . I f { a r g R E A S O 0033100 N } i s { l i s p N I L } 0033120 , t h e d e f a u l t i s 0033140 { l i s p D E F I N E D } . 0033160 \r \r N o t e : I f { a r g 0033200 T Y P E } = { l i s p F N S 0033220 } , { f n P U T D E F } p 0033240 r i n t s a w a r n i n g 0033260 i f t h e u s e r t r i e 0033300 s t o r e d e f i n e a 0033320 f u n c t i o n o n t h e 0033340 l i s t { i n d e x U N S A 0033360 F E . T O . M O D I F Y . F N S 0033400 V a r } { v a r U N S A F E 0033420 . T O . M O D I F Y . F N S } 0033440 ( { P a g e R e f V a r U N 0033460 S A F E . T O . M O D I F Y . F 0033500 N S } ) . \r } } \r \r \r { F n D e 0033520 f { F n N a m e H A S D E F 0033540 } { F n A r g s N A M E T 0033560 Y P E S O U R C E S P E L L 0033600 F L G } \r { T e x t \r R e t u r 0033620 n s { l i s p ( O R { a r 0033640 g N A M E } T ) } i f { 0033660 a r g N A M E } i s t h e 0033700 n a m e o f s o m e t h i 0033720 n g o f t y p e { a r g 0033740 T Y P E } . I f n o t , 0033760 a t t e m p t s s p e l l i n 0034000 g c o r r e c t i o n i f 0034020 { a r g S P E L L F L G } = { 0034040 l i s p T } , a n d r e t 0034060 u r n s t h e s p e l l i n 0034100 g - c o r r e c t e d { a r g 0034120 N A M E } . O t h e r w i 0034140 s e r e t u r n s { l i s p 0034160 N I L } . \r \r { l i s p ( H 0034200 A S D E F N I L { a r g T 0034220 Y P E } ) } r e t u r n s { 0034240 l i s p T } i f { l i s p 0034260 N I L } h a s a v a l i 0034300 d d e f i n i t i o n . \r \r N 0034320 o t e : i f { a r g S O 0034340 U R C E } = { l i s p N I L } 0034360 , { a r g H A S D E F } i 0034400 n t e r p r e t s t h i s a 0034420 s e q u a l t o { a r g 0034440 S O U R C E } = { l i s p C U 0034460 R R E N T } , w h i c h o n 0034500 l y t e s t s i f t h e r 0034520 e i s a c u r r e n t d 0034540 e f i n i t i o n . \r } } \r \r \r 0034560 \r { F n D e f { F n N a m e 0034600 T Y P E S O F } { F n A r g s 0034620 N A M E P O S S I B L E T Y 0034640 P E S I M P O S S I B L E T Y 0034660 P E S S O U R C E } \r { T e x 0034700 t \r R e t u r n s a l i s t 0034720 o f t h e t y p e s i n 0034740 { a r g P O S S I B L E T Y 0034760 P E S } b u t n o t i n 0035000 { a r g I M P O S S I B L E T 0035020 Y P E S } f o r w h i c h 0035040 { a r g N A M E } h a s a 0035060 d e f i n i t i o n . { l 0035100 i s p F I L E P K G T Y P E S 0035120 } i s u s e d i f { a r 0035140 g P O S S I B L E T Y P E S } 0035160 i s { l i s p N I L } . \r 0035200 } } \r \r \r \r { F n D e f { F n 0035220 N a m e C O P Y D E F } { F 0035240 n A r g s O L D N E W T Y 0035260 P E S O U R C E O P T I O N 0035300 S } \r { T e x t \r D e f i n e s 0035320 { a r g N E W } t o h a 0035340 v e a c o p y o f t h e 0035360 d e f i n i t i o n o f { 0035400 a r g O L D } b y d o i n 0035420 g { f n P U T D E F } o n 0035440 a c o p y o f t h e d 0035460 e f i n i t i o n r e t r i e 0035500 v e d b y { l i s p ( G E 0035520 T D E F { a r g O L D } { 0035540 a r g T Y P E } { a r g S 0035560 O U R C E } { a r g O P T I 0035600 O N S } ) } . { a r g N E 0035620 W } i s s u b s t i t u t e 0035640 d f o r { a r g O L D } 0035660 i n t h e c o p i e d d e 0035700 f i n i t i o n , i n a m 0035720 a n n e r t h a t m a y d 0035740 e p e n d o n t h e { a r 0035760 g T Y P E } . \r \r { n o t 0036000 e I a s s u m e t h a t 0036020 C O P Y D E F w i l l f a i 0036040 l m i s e r a b l y i f g 0036060 i v e n a n y u s e r - d e 0036100 f i n e d f i l e p a c k a 0036120 g e t y p e w h i c h c o 0036140 n t a i n s i n t e r n a l 0036160 r e f e r e n c e s t o i t 0036200 s n a m e . P e r h a p s 0036220 t h e r e s h o u l d b e 0036240 a C O P Y D E F a t t r i 0036260 b u t e d e f i n a b l e b 0036300 y F I L E P K G T Y P E ? ? 0036320 ? } \r \r F o r e x a m p l e , 0036340 { l i s p ( C O P Y D E F 0036360 ' P D Q ' R S T ' F I L E S 0036400 ) } s e t s u p { l i s p 0036420 R S T C O M S } t o b e 0036440 a c o p y o f { l i s p 0036460 P D Q C O M S } , c h a n g e 0036500 s t h i n g s l i k e { l 0036520 i s p ( V A R S * P D Q V 0036540 A R S ) } t o b e { l i s 0036560 p ( V A R S * R S T V A R 0036600 S ) } i n { l i s p R S T 0036620 C O M S } , a n d p e r f o 0036640 r m s a { f n M A K E F I 0036660 L E } o n { l i s p R S T 0036700 } s u c h t h a t t h e 0036720 a p p r o p r i a t e d e f i 0036740 n i t i o n s g e t c o p i 0036760 e d f r o m { l i s p P D 0037000 Q } . \r \r { f n C O P Y D E F 0037020 } d i s a b l e s t h e { 0037040 l i s p N O C O P Y } o p t 0037060 i o n o f { f n G E T D E 0037100 F } , s o { a r g N E W } 0037120 w i l l a l w a y s h a v 0037140 e a { i t c o p y } o f 0037160 t h e d e f i n i t i o n 0037200 o f { a r g O L D } . \r \r N 0037220 o t e : { f n C O P Y D E 0037240 F } s u b s t i t u t e s { 0037260 a r g N E W } f o r { a r 0037300 g O L D } t h r o u g h o u 0037320 t t h e d e f i n i t i o n 0037340 o f { a r g O L D } . 0037360 T h i s i s u s u a l l y 0037400 t h e r i g h t t h i n g 0037420 t o d o , b u t i n s o 0037440 m e c a s e s , e . g . , 0037460 w h e r e t h e o l d n a 0037500 m e a p p e a r s w i t h i 0037520 n a q u o t e d e x p r e 0037540 s s i o n b u t w a s n o 0037560 t u s e d i n t h e s a 0037600 m e c o n t e x t , t h e 0037620 u s e r m u s t r e - e d i 0037640 t t h e d e f i n i t i o n 0037660 . \r } } \r \r \r { F n D e f { F 0037700 n N a m e D E L D E F } { F 0037720 n A r g s N A M E T Y P E } 0037740 \r { T e x t \r R e m o v e s t 0037760 h e d e f i n i t i o n o f 0040000 { a r g N A M E } a s a 0040020 { a r g T Y P E } t h a t 0040040 i s c u r r e n t l y i n 0040060 e f f e c t . \r } } \r \r \r { F 0040100 n D e f { F n N a m e S H O 0040120 W D E F } { F n A r g s N A 0040140 M E T Y P E F I L E } \r { T 0040160 e x t \r P r e t t y p r i n t s 0040200 t h e d e f i n i t i o n 0040220 o f { a r g N A M E } a s 0040240 a { a r g T Y P E } t o 0040260 { a r g F I L E } . T h 0040300 i s s h o w s t h e u s e 0040320 r h o w { a r g N A M E } 0040340 w o u l d b e w r i t t e 0040360 n t o a f i l e . U s 0040400 e d b y { f n A D D T O F 0040420 I L E S ? } ( { P a g e R e f 0040440 F n A D D T O F I L E S ? } 0040460 ) . \r } } \r \r \r { F n D e f { 0040500 F n N a m e E D I T D E F } 0040520 { F n A r g s N A M E T Y P 0040540 E S O U R C E E D I T C O M 0040560 S } \r { T e x t \r E d i t s t 0040600 h e d e f i n i t i o n o f 0040620 { a r g N A M E } a s a 0040640 { a r g T Y P E } . E s 0040660 s e n t i a l l y p e r f o r 0040700 m s \r \r { l i s p c o d e \r ( P 0040720 U T D E F { a r g N A M E } 0040740 { a r g T Y P E } \r ( 0040760 E D I T E ( G E T D E F { a 0041000 r g N A M E } { a r g T Y 0041020 P E } { a r g S O U R C E } 0041040 ) \r { a r g 0041060 E D I T C O M S } ) ) } \r } } \r 0041100 \r \r { F n D e f { F n N a m e 0041120 S A V E D E F } { F n A r g 0041140 s N A M E T Y P E D E F I 0041160 N I T I O N } \r { T e x t \r S e 0041200 t s t h e " s a v e d " d 0041220 e f i n i t i o n o f { a r 0041240 g N A M E } a s a { a r 0041260 g T Y P E } t o { a r g 0041300 D E F I N I T I O N } . I f 0041320 { a r g D E F I N I T I O N 0041340 } = { l i s p N I L } , t h 0041360 e c u r r e n t d e f i n i 0041400 t i o n o f { a r g N A M 0041420 E } i s s a v e d . \r \r I f 0041440 { a r g T Y P E } = { l i s 0041460 p F N S } ( o r { l i s p 0041500 N I L } ) , t h e f u n c 0041520 t i o n d e f i n i t i o n 0041540 i s s a v e d o n { a r g 0041560 N A M E } ' s p r o p e r t 0041600 y l i s t u n d e r t h e 0041620 p r o p e r t y { i n d e x 0041640 E X P R P r o p } { p r o p 0041660 E X P R } , o r { i n d e 0041700 x * P R I M A R Y * C O D E 0041720 P r o p } { p r o p C O D E 0041740 } ( d e p e n d i n g o n 0041760 t h e { i n d e x F N T Y P 0042000 F N } { f n F N T Y P } o 0042020 f t h e f u n c t i o n d 0042040 e f i n i t i o n ) . I f 0042060 { l i s p ( G E T D { a r g 0042100 N A M E } ) } i s n o n - 0042120 { l i s p N I L } , b u t 0042140 { l i s p ( F N T Y P { a r 0042160 g F N } ) } = { l i s p N I 0042200 L } , { f n S A V E D E F } 0042220 s a v e s t h e d e f i n 0042240 i t i o n o n t h e p r o 0042260 p e r t y n a m e { i n d e 0042300 x * P R I M A R Y * L I S T 0042320 P r o p } { l i s p L I S T 0042340 } . T h i s c a n h a p 0042360 p e n i f a f u n c t i o 0042400 n w a s s o m e h o w d e 0042420 f i n e d w i t h a n i l 0042440 l e g a l e x p r d e f i n 0042460 i t i o n , s u c h a s { 0042500 l i s p ( L A M M M M D A ( 0042520 X ) { e l l i p s i s } ) } . 0042540 \r \r I f { a r g T Y P E } = 0042560 { l i s p V A R S } , t h e 0042600 d e f i n i t i o n i s s 0042620 t o r e d a s t h e v a l 0042640 u e o f t h e { i n d e x 0042660 * P R I M A R Y * V A L U E 0042700 P r o p } { p r o p V A L U 0042720 E } p r o p e r t y o f { 0042740 a r g N A M E } . F o r 0042760 o t h e r t y p e s , t h e 0043000 d e f i n i t i o n i s s 0043020 t o r e d i n a n i n t e 0043040 r n a l d a t a s t r u c t 0043060 u r e , f r o m w h e r e 0043100 i t c a n b e r e t r i e 0043120 v e d b y { f n G E T D E 0043140 F } o r { f n U N S A V E 0043160 D E F } . \r } } \r \r \r { F n D e 0043200 f { F n N a m e U N S A V E 0043220 D E F } { F n A r g s N A M 0043240 E T Y P E { a n o n a r g } 0043260 } \r { T e x t \r R e s t o r e s 0043300 t h e " s a v e d " d e f 0043320 i n i t i o n o f { a r g 0043340 N A M E } a s a { a r g 0043360 T Y P E } , m a k i n g i t 0043400 b e t h e c u r r e n t 0043420 d e f i n i t i o n . R e t 0043440 u r n s { a r g P R O P } . 0043460 \r \r I f { a r g T Y P E } = 0043500 { l i s p F N S } ( o r { 0043520 l i s p N I L } ) , { f n 0043540 U N S A V E D E F } u n s a v 0043560 e s t h e f u n c t i o n 0043600 d e f i n i t i o n f r o m 0043620 t h e { p r o p E X P R } 0043640 p r o p e r t y i f a n y , 0043660 e l s e { p r o p C O D E 0043700 } , a n d r e t u r n s t 0043720 h e p r o p e r t y n a m e 0043740 u s e d . { f n U N S A 0043760 V E D E F } a l s o r e c o 0044000 g n i z e s { a r g T Y P E 0044020 } = { l i s p E X P R } , { 0044040 l i s p C O D E } , o r { 0044060 l i s p L I S T } , m e a n 0044100 i n g t o u n s a v e t h 0044120 e d e f i n i t i o n o n l 0044140 y f r o m t h e c o r r e 0044160 s p o n d i n g p r o p e r t 0044200 y o n l y . \r \r I f { i n d 0044220 e x D F N F L G V a r } { v 0044240 a r D F N F L G } i s n o 0044260 t { l i s p T } ( s e e 0044300 { P a g e R e f V a r D F N 0044320 F L G } ) , t h e c u r r e 0044340 n t d e f i n i t i o n o f 0044360 { a r g N A M E } , i f 0044400 a n y , i s s a v e d u s 0044420 i n g { f n S A V E D E F } 0044440 . T h u s o n e c a n 0044460 u s e { f n U N S A V E D E 0044500 F } t o s w i t c h b a c 0044520 k a n d f o r t h b e t w 0044540 e e n t w o d e f i n i t i 0044560 o n s . \r } } \r \r \r { F n D e f 0044600 { F n N a m e L O A D D E F 0044620 } { F n A r g s N A M E T 0044640 Y P E S O U R C E } \r { T e x 0044660 t \r E q u i v a l e n t t o 0044700 { l i s p ( P U T D E F { a 0044720 r g N A M E } { a r g T Y 0044740 P E } ( G E T D E F { a r g 0044760 N A M E } { a r g T Y P E 0045000 } { a r g S O U R C E } ) ) 0045020 } . { f n L O A D D E F } 0045040 i s e s s e n t i a l l y 0045060 a g e n e r a l i z a t i o n 0045100 o f { f n L O A D F N S } 0045120 , e . g . i t e n a b l e 0045140 s l o a d i n g a s i n g 0045160 l e r e c o r d d e c l a r 0045200 a t i o n f r o m a f i l 0045220 e . \r N o t e t h a t { l i 0045240 s p ( L O A D D E F { a r g 0045260 F N } ) } w i l l g i v e 0045300 { a r g F N } a n { l i 0045320 s p E X P R } d e f i n i t 0045340 i o n , e i t h e r o b t a 0045360 i n e d f r o m i t s p r 0045400 o p e r t y l i s t o r a 0045420 f i l e , u n l e s s i t 0045440 a l r e a d y h a s o n e 0045460 . \r \r { n o t e c a l l s G 0045500 E T D E F w i t h O P T I O 0045520 N S = ( N O D W I M N O C O P 0045540 Y ) } \r \r } } \r \r \r { F n D e f 0045560 { F n N a m e C H A N G E C 0045600 A L L E R S } { F n A r g s 0045620 O L D N E W T Y P E S F I 0045640 L E S M E T H O D } \r { T e x 0045660 t \r F i n d s a l l o f t 0045700 h e p l a c e s w h e r e 0045720 { a r g O L D } i s u s e 0045740 d a s a n y o f t h e 0045760 t y p e s i n { a r g T Y 0046000 P E S } a n d c h a n g e s 0046020 t h o s e p l a c e s t o 0046040 u s e { a r g N E W } . 0046060 F o r e x a m p l e , { l 0046100 i s p ( C H A N G E C A L L E 0046120 R S ' N L S E T Q ' E R S E 0046140 T Q ) } w i l l c h a n g e 0046160 a l l c a l l s t o { f 0046200 n N L S E T Q } t o b e 0046220 c a l l s t o { f n E R S 0046240 E T Q } . A l s o c h a n 0046260 g e s o c c u r r e n c e s 0046300 o f { a r g O L D } t o 0046320 { a r g N E W } i n s i d e 0046340 t h e f i l e c o m s o f 0046360 a n y f i l e , i n s i d 0046400 e r e c o r d d e c l a r a 0046420 t i o n s , p r o p e r t i e 0046440 s , e t c . \r \r { f n C 0046460 H A N G E C A L L E R S } a t 0046500 t e m p t s t o d e t e r m 0046520 i n e i f { a r g O L D } 0046540 m i g h t b e u s e d a 0046560 s m o r e t h a n o n e 0046600 t y p e ; f o r e x a m p l 0046620 e , i f i t i s b o t h 0046640 a f u n c t i o n a n d 0046660 a r e c o r d f i e l d . 0046700 I f s o , r a t h e r t 0046720 h a n p e r f o r m i n g t 0046740 h e t r a n s f o r m a t i o 0046760 n { l i s p { a r g O L D 0047000 } - > { a r g N E W } } 0047020 a u t o m a t i c a l l y , t 0047040 h e u s e r i s a l l o w 0047060 e d t o e d i t a l l o 0047100 f t h e p l a c e s w h e 0047120 r e { a r g O L D } o c c 0047140 u r s . F o r e a c h o 0047160 c c u r r e n c e o f { a r 0047200 g O L D } , t h e u s e r 0047220 i s a s k e d w h e t h e 0047240 r h e w a n t s t o m a 0047260 k e t h e r e p l a c e m e 0047300 n t . I f h e r e s p o 0047320 n d s w i t h a n y t h i n 0047340 g e x c e p t { l i s p Y 0047360 e s } o r { l i s p N o } 0047400 , t h e e d i t o r i s 0047420 i n v o k e d o n t h e e 0047440 x p r e s s i o n c o n t a i 0047460 n i n g t h a t o c c u r r 0047500 e n c e . \r \r T h e r e a r e 0047520 t w o d i f f e r e n t m 0047540 e t h o d s f o r d e t e r 0047560 m i n i n g w h i c h f u n 0047600 c t i o n s a r e t o b e 0047620 e x a m i n e d . I f { 0047640 a r g M E T H O D } = { l i s 0047660 p E D I T C A L L E R S } , 0047700 { f n E D I T C A L L E R S } 0047720 i s u s e d t o s e a r 0047740 c h { a r g F I L E S } ( 0047760 s e e { P a g e R e f F n 0050000 E D I T C A L L E R S } ) . 0050020 I f { a r g M E T H O D } = 0050040 { l i s p M A S T E R S C O P 0050060 E } , t h e n t h e M a s 0050100 t e r s c o p e d a t a b a s 0050120 e i s u s e d i n s t e a 0050140 d . { a r g M E T H O D } 0050160 = { l i s p N I L } d e f a 0050200 u l t s t o { l i s p M A 0050220 S T E R S C O P E } i f t h 0050240 e v a l u e o f t h e v 0050260 a r i a b l e { v a r D E F 0050300 A U L T R E N A M E M E T H O D 0050320 } { i n d e x * P R I M A R Y 0050340 * D E F A U L T R E N A M E M 0050360 E T H O D V a r } i s { l 0050400 i s p M A S T E R S C O P E } 0050420 a n d a M a s t e r s c o 0050440 p e d a t a b a s e e x i s 0050460 t s , o t h e r w i s e i t 0050500 d e f a u l t s t o { l i 0050520 s p E D I T C A L L E R S } . 0050540 \r } } \r \r \r { F n D e f { F n 0050560 N a m e R E N A M E } { F n 0050600 A r g s O L D N E W T Y P 0050620 E S F I L E S M E T H O D } 0050640 \r { T e x t \r F i r s t p e r 0050660 f o r m s { l i s p ( C O P 0050700 Y D E F { a r g O L D } { 0050720 a r g N E W } { a r g T Y 0050740 P E } ) } f o r a l l { a 0050760 r g T Y P E } i n s i d e 0051000 { a r g T Y P E S } . I t 0051020 t h e n c a l l s { f n 0051040 C H A N G E C A L L E R S } t 0051060 o c h a n g e a l l o c c 0051100 u r r e n c e s o f { a r g 0051120 O L D } t o { a r g N E 0051140 W } , a n d t h e n " d e 0051160 l e t e s " { a r g O L D } 0051200 w i t h { f n D E L D E F 0051220 } . F o r e x a m p l e , 0051240 i f t h e u s e r h a s 0051260 a f u n c t i o n { l i s 0051300 p F O O } w h i c h h e 0051320 n o w w i s h e s t o c a 0051340 l l { l i s p F I E } , h 0051360 e s i m p l y p e r f o r m 0051400 s { l i s p ( R E N A M E 0051420 ' F O O ' F I E ) } , a n d 0051440 { l i s p F I E } w i l l 0051460 b e g i v e n { l i s p 0051500 F O O } ' s d e f i n i t i o 0051520 n , a n d a l l p l a c e 0051540 s t h a t { l i s p F O O 0051560 } a r e c a l l e d w i l 0051600 l b e c h a n g e d t o 0051620 c a l l { l i s p F I E } 0051640 i n s t e a d . \r \r { a r g M 0051660 E T H O D } i s i n t e r p 0051700 r e t e d t h e s a m e a 0051720 s t h e { a r g M E T H O 0051740 D } a r g u m e n t t o { 0051760 f n C H A N G E C A L L E R S 0052000 } , a b o v e . \r } } \r \r \r { 0052020 F n D e f { F n N a m e C O 0052040 M P A R E } { F n A r g s N 0052060 A M E 1 N A M E 2 T Y P E 0052100 S O U R C E 1 S O U R C E 2 } 0052120 \r { T e x t \r C o m p a r e s 0052140 t h e d e f i n i t i o n o 0052160 f { a r g N A M E 1 } w i 0052200 t h t h a t o f { a r g 0052220 N A M E 2 } , b y c a l l i 0052240 n g { f n C O M P A R E L I 0052260 S T S } ( { P a g e R e f F 0052300 n C O M P A R E L I S T S } ) 0052320 o n { l i s p ( G E T D 0052340 E F { a r g N A M E 1 } { 0052360 a r g T Y P E } { a r g S 0052400 O U R C E 1 } ) } a n d { l 0052420 i s p ( G E T D E F { a r g 0052440 N A M E 2 } { a r g T Y P 0052460 E } { a r g S O U R C E 2 } 0052500 ) } , w h i c h p r i n t s 0052520 t h e i r d i f f e r e n c 0052540 e s o n t h e t e r m i n 0052560 a l . \r \r F o r e x a m p l e 0052600 , i f t h e c u r r e n t 0052620 v a l u e o f t h e v a 0052640 r i a b l e { l i s p A } 0052660 i s { l i s p ( A B C 0052700 ( D E F ) G ) } , a n d 0052720 t h e v a l u e o f t h 0052740 e v a r i a b l e { l i s p 0052760 B } o n t h e f i l e 0053000 { l i s p < l i s p > F O O } 0053020 i s { l i s p ( A B C 0053040 ( D F E ) G ) } , t h 0053060 e n : \r \r { l i s p c o d e \r _ 0053100 ( C O M P A R E ' A ' B ' 0053120 V A R S ' C U R R E N T ' < 0053140 l i s p > F O O ) \r A f r o m 0053160 C U R R E N T a n d B f 0053200 r o m < l i s p > T E S T d 0053220 i f f e r : \r ( E - > F ) 0053240 ( F - > E ) \r T } \r } } \r 0053260 \r \r { F n D e f { F n N a m e 0053300 C O M P A R E D E F S } { F 0053320 n A r g s N A M E T Y P E 0053340 S O U R C E S } \r { T e x t \r C 0053360 a l l s { f n C O M P A R E 0053400 L I S T S } ( { P a g e R e f 0053420 F n C O M P A R E L I S T S 0053440 } ) o n a l l p a i r s 0053460 o f d e f i n i t i o n s o 0053500 f { a r g N A M E } a s 0053520 a { a r g T Y P E } o b t 0053540 a i n e d f r o m t h e v 0053560 a r i o u s { a r g S O U R 0053600 C E S } ( i n t e r p r e t e 0053620 d a s a l i s t o f s 0053640 o u r c e s p e c i f i c a t 0053660 i o n s ) . \r } } \r \r \r \r } { 0053700 E n d S u b S e c F u n c t 0053720 i o n s f o r M a n i p u l 0053740 a t i n g T y p e d D e f i 0053760 n i t i o n s } \r \r \r \r { B e g 0054000 i n S u b S e c D e f i n i 0054020 n g N e w F i l e P a c k 0054040 a g e T y p e s } \r { T i t l 0054060 e D e f i n i n g N e w F 0054100 i l e P a c k a g e T y p e 0054120 s } \r { T e x t \r \r { i n d e x 0054140 * P R I M A R Y * D e f i n 0054160 i n g f i l e p a c k a g e 0054200 t y p e s } \r \r A l l m a n 0054220 i p u l a t i o n o f t y p 0054240 e d d e f i n i t i o n s i 0054260 n t h e f i l e p a c k a 0054300 g e i s d o n e u s i n g 0054320 t h e t y p e - i n d e p e 0054340 n d e n t f u n c t i o n s 0054360 { f n G E T D E F } , { f n 0054400 P U T D E F } , e t c . 0054420 T h e r e f o r e , t o d e 0054440 f i n e a n e w f i l e 0054460 p a c k a g e t y p e , i t 0054500 i s o n l y n e c e s s a 0054520 r y t o s p e c i f y ( v 0054540 i a t h e f u n c t i o n 0054560 { f n F I L E P K G T Y P E } 0054600 ) w h a t t h e s e f u n 0054620 c t i o n s s h o u l d d o 0054640 w h e n d e a l i n g w i 0054660 t h a t y p e d d e f i n 0054700 i t i o n o f t h e n e w 0054720 t y p e . E a c h f i l 0054740 e p a c k a g e t y p e h 0054760 a s t h e f o l l o w i n g 0055000 p r o p e r t i e s , w h o 0055020 s e v a l u e s a r e f u 0055040 n c t i o n s o r l i s t s 0055060 o f f u n c t i o n s : \r \r 0055100 N o t e : T h e s e f u n 0055120 c t i o n s a r e d e f i n 0055140 e d t o t a k e a { a r 0055160 g T Y P E } a r g u m e n t 0055200 s o t h a t t h e u s e 0055220 r m a y h a v e t h e s 0055240 a m e f u n c t i o n f o r 0055260 m o r e t h a n o n e t 0055300 y p e . \r \r \r { D e f { T y p 0055320 e ( F i l e P a c k a g e 0055340 T y p e P r o p e r t y ) } 0055360 { N a m e G E T D E F } \r { T 0055400 e x t \r V a l u e i s a f 0055420 u n c t i o n o f t h r e e 0055440 a r g u m e n t s , { a r g 0055460 N A M E } , { a r g T Y P 0055500 E } , a n d { a r g O P T 0055520 I O N S } , w h i c h s h o 0055540 u l d r e t u r n t h e c 0055560 u r r e n t d e f i n i t i o 0055600 n o f { a r g N A M E } 0055620 a s a t y p e { a r g T 0055640 Y P E } . U s e d b y { 0055660 f n G E T D E F } ( { P a g 0055700 e R e f F n G E T D E F } ) 0055720 , w h i c h p a s s e s i 0055740 t s { a r g O P T I O N S } 0055760 a r g u m e n t . \r \r I f t 0056000 h e r e i s n o { l i s p 0056020 G E T D E F } p r o p e r t 0056040 y , a f i l e p a c k a g 0056060 e c o m m a n d f o r d u 0056100 m p i n g { a r g N A M E } 0056120 i s c r e a t e d ( b y 0056140 { f n M A K E N E W C O M } ) 0056160 . T h i s c o m m a n d 0056200 i s t h e n u s e d t o 0056220 w r i t e t h e d e f i n i 0056240 t i o n o f { a r g N A M 0056260 E } a s a t y p e { a r 0056300 g T Y P E } o n t o t h e 0056320 f i l e { l i s p F I L E 0056340 P K G . S C R A T C H } { i n d 0056360 e x F I L E P K G . S C R A T 0056400 C H ( f i l e ) } ( i n I 0056420 n t e r l i s p - D , t h i s 0056440 f i l e i s c r e a t e d 0056460 o n t h e { l i s p { b 0056500 r a c k e t C O R E } } d e 0056520 v i c e ) . T h i s e x p 0056540 r e s s i o n i s t h e n 0056560 r e a d b a c k i n a n d 0056600 r e t u r n e d a s t h e 0056620 c u r r e n t d e f i n i t 0056640 i o n . \r \r { n o t e i f G 0056660 E T D E F p r o p i s T 0056700 ( F N S , V A R S , e t c ) 0056720 , t h i s i s h a n d l e 0056740 d b y c o d e i n G E T 0056760 D E F C U R R E N T } \r \r N o t 0057000 e : I n s o m e s i t u 0057020 a t i o n s , t h e f u n c 0057040 t i o n { f n H A S D E F } 0057060 ( { P a g e R e f F n H A 0057100 S D E F } ) n e e d s t o 0057120 c a l l { f n G E T D E F } 0057140 t o d e t e r m i n e w h 0057160 e t h e r a d e f i n i t i 0057200 o n e x i s t s . I n t 0057220 h i s c a s e , { a r g O 0057240 P T I O N S } w i l l i n c 0057260 l u d e t h e l i t a t o m 0057300 { l i s p H A S D E F } , 0057320 a n d i t i s p e r m i s 0057340 s a b l e f o r a { l i s 0057360 p G E T D E F } f u n c t i 0057400 o n t o r e t u r n { l i 0057420 s p T } o r { l i s p N 0057440 I L } , r a t h e r t h a n 0057460 c r e a t i n g a c o m p 0057500 l e x s t r u c t u r e w h 0057520 i c h w i l l n o t b e 0057540 u s e d . \r } } \r \r \r { D e f 0057560 { T y p e ( F i l e P a c k 0057600 a g e T y p e P r o p e r t 0057620 y ) } { N a m e N U L L D E 0057640 F } \r { T e x t \r T h e v a l 0057660 u e o f t h e { l i s p 0057700 N U L L D E F } p r o p e r t 0057720 y i s r e t u r n e d b y 0057740 { f n G E T D E F } ( { P 0057760 a g e R e f F n G E T D E F 0060000 } ) w h e n t h e r e i s 0060020 n o d e f i n i t i o n a 0060040 n d t h e { l i s p N O E 0060060 R R O R } o p t i o n i s 0060100 s u p p l i e d . F o r e 0060120 x a m p l e , t h e { l i s 0060140 p N U L L D E F } o f { l 0060160 i s p V A R S } i s { l i 0060200 s p N O B I N D } . \r } } \r \r 0060220 \r { D e f { T y p e ( F i l 0060240 e P a c k a g e T y p e P 0060260 r o p e r t y ) } { N a m e 0060300 F I L E G E T D E F } \r { T e x 0060320 t \r T h i s e n a b l e s t 0060340 h e u s e r t o p r o v i 0060360 d e a w a y o f o b t a 0060400 i n i n g d e f i n i t i o n 0060420 s f r o m a f i l e t h 0060440 a t i s m o r e e f f i c 0060460 i e n t t h a n t h e d e 0060500 f a u l t p r o c e d u r e 0060520 u s e d b y { f n G E T D 0060540 E F } ( { P a g e R e f F n 0060560 G E T D E F } ) . V a l u 0060600 e i s a f u n c t i o n 0060620 o f f o u r a r g u m e n t 0060640 s , { a r g N A M E } , { 0060660 a r g T Y P E } , { a r g 0060700 F I L E } , a n d { a r g 0060720 O P T I O N S } . T h e f 0060740 u n c t i o n i s a p p l i 0060760 e d b y { f n G E T D E F 0061000 } w h e n i t i s d e t 0061020 e r m i n e d t h a t a t 0061040 y p e d d e f i n i t i o n 0061060 i s n e e d e d f r o m a 0061100 p a r t i c u l a r f i l e 0061120 . T h e f u n c t i o n 0061140 m u s t o p e n a n d s e 0061160 a r c h t h e g i v e n f 0061200 i l e a n d r e t u r n a 0061220 n y { a r g T Y P E } d e 0061240 f i n i t i o n f o r { a r 0061260 g N A M E } t h a t i t 0061300 f i n d s . \r } } \r \r \r { D e f 0061320 { T y p e ( F i l e P a c 0061340 k a g e T y p e P r o p e r 0061360 t y ) } { N a m e C A N F I 0061400 L E D E F } \r { T e x t \r I f 0061420 t h e v a l u e o f t h i 0061440 s p r o p e r t y i s n o 0061460 n - { l i s p N I L } , t h 0061500 i s i n d i c a t e s t h a 0061520 t d e f i n i t i o n s o f 0061540 t h i s f i l e p a c k a 0061560 g e t y p e a r e n o t 0061600 l o a d e d w h e n a f i 0061620 l e i s l o a d e d w i t 0061640 h { f n L O A D F R O M } 0061660 ( { P a g e R e f F n L O A 0061700 D F R O M } ) . T h e d e 0061720 f a u l t i s { l i s p N 0061740 I L } . I n i t i a l l y , 0061760 o n l y { l i s p F N S } 0062000 h a s t h i s p r o p e r 0062020 t y s e t t o n o n - { l 0062040 i s p N I L } . \r } } \r \r \r { 0062060 D e f { T y p e ( F i l e 0062100 P a c k a g e T y p e P r o 0062120 p e r t y ) } { N a m e P U 0062140 T D E F } \r { T e x t \r V a l u 0062160 e i s a f u n c t i o n 0062200 o f t h r e e a r g u m e n 0062220 t s , { a r g N A M E } , 0062240 { a r g T Y P E } , a n d 0062260 { a r g D E F I N I T I O N } 0062300 , w h i c h s h o u l d s 0062320 t o r e { a r g D E F I N I 0062340 T I O N } a s t h e d e f 0062360 i n i t i o n o f { a r g 0062400 N A M E } a s a t y p e 0062420 { a r g T Y P E } . U s e 0062440 d b y { f n P U T D E F } 0062460 ( { P a g e R e f F n P U 0062500 T D E F } ) . \r } } \r \r { D e f 0062520 { T y p e ( F i l e P a c 0062540 k a g e T y p e P r o p e r 0062560 t y ) } { N a m e H A S D E 0062600 F } \r { T e x t \r V a l u e i 0062620 s a f u n c t i o n o f 0062640 t h r e e a r g u m e n t s , 0062660 { a r g N A M E } , { a r 0062700 g T Y P E } , a n d { a r 0062720 g S O U R C E } , w h i c h 0062740 s h o u l d r e t u r n { 0062760 l i s p ( O R { a r g N A 0063000 M E } T ) } i f { a r g 0063020 N A M E } i s t h e n a m 0063040 e o f s o m e t h i n g o 0063060 f t y p e { a r g T Y P E 0063100 } . { a r g S O U R C E } 0063120 i s a s i n t e r p r e t 0063140 e d b y { f n H A S D E F 0063160 } ( { P a g e R e f F n H 0063200 A S D E F } ) , w h i c h u 0063220 s e s t h i s p r o p e r t 0063240 y . \r } } \r \r { D e f { T y p 0063260 e ( F i l e P a c k a g e 0063300 T y p e P r o p e r t y ) } 0063320 { N a m e E D I T D E F } \r { 0063340 T e x t \r V a l u e i s a 0063360 f u n c t i o n o f f o u r 0063400 a r g u m e n t s , { a r g 0063420 N A M E } , { a r g T Y P 0063440 E } , { a r g S O U R C E } 0063460 , a n d { a r g E D I T C 0063500 O M S } , w h i c h s h o u 0063520 l d e d i t t h e d e f i 0063540 n i t i o n o f { a r g N 0063560 A M E } a s a t y p e { 0063600 a r g T Y P E } f r o m t 0063620 h e s o u r c e { a r g S 0063640 O U R C E } , i n t e r p r e 0063660 t i n g t h e e d i t c o 0063700 m m a n d s { a r g E D I T 0063720 C O M S } . I f s u c e s 0063740 s f u l , s h o u l d r e t 0063760 u r n { a r g N A M E } ( 0064000 o r a s p e l l i n g - c o 0064020 r r e c t e d { a r g N A M 0064040 E } ) . I f i t r e t u 0064060 r n s { l i s p N I L } , 0064100 t h e " d e f a u l t " e d 0064120 i t o r i s c a l l e d . 0064140 U s e d b y { f n E D I 0064160 T D E F } ( { P a g e R e f 0064200 F n E D I T D E F } ) . \r } } 0064220 \r \r { D e f { T y p e ( F i 0064240 l e P a c k a g e T y p e 0064260 P r o p e r t y ) } { N a m e 0064300 D E L D E F } \r { T e x t \r V 0064320 a l u e i s a f u n c t i 0064340 o n o f t w o a r g u m e 0064360 n t s , { a r g N A M E } , 0064400 a n d { a r g T Y P E } , 0064420 w h i c h r e m o v e s t 0064440 h e d e f i n i t i o n o f 0064460 { a r g N A M E } a s a 0064500 { a r g T Y P E } t h a t 0064520 i s c u r r e n t l y i n 0064540 e f f e c t . U s e d b 0064560 y { f n D E L D E F } ( { 0064600 P a g e R e f F n D E L D E 0064620 F } ) . \r } } \r \r \r { D e f 0064640 { T y p e ( F i l e P a c k 0064660 a g e T y p e P r o p e r t 0064700 y ) } { N a m e N E W C O M 0064720 } \r { T e x t \r V a l u e i s 0064740 a f u n c t i o n o f f 0064760 o u r a r g u m e n t s , { 0065000 a r g N A M E } , { a r g 0065020 T Y P E } , { a r g L I S T 0065040 N A M E } , a n d { a r g 0065060 F I L E } . S p e c i f i e 0065100 s h o w t o m a k e a 0065120 n e w ( i n s t a n c e o f 0065140 a ) f i l e p a c k a g e 0065160 c o m m a n d t o d u m p 0065200 { a r g N A M E } , a n 0065220 o b j e c t o f t y p e { 0065240 a r g T Y P E } . T h e 0065260 f u n c t i o n s h o u l d 0065300 r e t u r n t h e n e w f 0065320 i l e p a c k a g e c o m m 0065340 a n d . U s e d b y { f 0065360 n A D D T O F I L E } a n d 0065400 { f n S H O W D E F } . \r \r 0065420 I f { a r g L I S T N A M E 0065440 } i s n o n - { l i s p N 0065460 I L } , t h i s m e a n s 0065500 t h a t t h e u s e r s p 0065520 e c i f i e d { a r g L I S 0065540 T N A M E } a s t h e f i 0065560 l e v a r i n h i s i n t 0065600 e r a c t i o n w i t h { f 0065620 n A D D T O F I L E S ? } 0065640 ( s e e { P a g e R e f T a 0065660 g F i l e V a r s } ) . \r \r I 0065700 f n o { l i s p N E W C O 0065720 M } i s s p e c i f i e d , 0065740 t h e d e f a u l t i s 0065760 t o c a l l { f n D E F A 0066000 U L T M A K E N E W C O M } , { 0066020 i n d e x D E F A U L T M A K 0066040 E N E W C O M F N } w h i c 0066060 h w i l l c o n s t r u c t 0066100 a n d r e t u r n a c o 0066120 m m a n d o f t h e f o r 0066140 m { l i s p ( { a r g T Y 0066160 P E } { a r g N A M E } ) } 0066200 . { f n D E F A U L T M A 0066220 K E N E W C O M } c a n b e 0066240 a d v i s e d o r r e d e 0066260 f i n e d b y t h e u s e 0066300 r . \r } } \r \r \r { D e f { T 0066320 y p e ( F i l e P a c k a g 0066340 e T y p e P r o p e r t y ) 0066360 } { N a m e W H E N C H A N 0066400 G E D } \r { T e x t \r V a l u e 0066420 i s a l i s t o f f u 0066440 n c t i o n s t o b e a p 0066460 p l i e d t o { a r g N A 0066500 M E } , { a r g T Y P E } , 0066520 a n d { a r g R E A S O N 0066540 } w h e n { a r g N A M E 0066560 } , a n i n s t a n c e o 0066600 f t y p e { a r g T Y P E 0066620 } , i s c h a n g e d o r 0066640 d e f i n e d ( s e e { f 0066660 n M A R K A S C H A N G E D } 0066700 , { P a g e R e f F n M A 0066720 R K A S C H A N G E D } ) . 0066740 U s e d f o r v a r i o u s 0066760 a p p l i c a t i o n s , e 0067000 . g . w h e n a n o b j e 0067020 c t o f t y p e { l i s p 0067040 I . S . O P R S } c h a n g 0067060 e s , i t i s n e c e s s 0067100 a r y t o c l e a r t h e 0067120 c o r r e s p o n d i n g t 0067140 r a n s l a t o n s f r o m 0067160 { v a r C L I S P A R R A Y } 0067200 . \r \r T h e { l i s p W H E 0067220 N C H A N G E D } f u n c t i 0067240 o n s a r e c a l l e d b 0067260 e f o r e t h e o b j e c t 0067300 i s m a r k e d a s c h 0067320 a n g e d , s o t h a t i 0067340 t c a n , i n f a c t , 0067360 d e c i d e t h a t t h e 0067400 o b j e c t i s { i t n o 0067420 t } t o b e m a r k e d 0067440 a s c h a n g e d , a n d 0067460 e x e c u t e { l i s p ( R 0067500 E T F R O M ' M A R K A S C H 0067520 A N G E D ) } . \r \r N o t e : 0067540 F o r b a c k w a r d s c 0067560 o m p a t i b i l i t y , t h 0067600 e { a r g R E A S O N } a 0067620 r g u m e n t p a s s e d t 0067640 o { l i s p W H E N C H A N 0067660 G E D } f u n c t i o n s i 0067700 s e i t h e r { l i s p T 0067720 } ( f o r { l i s p D E F 0067740 I N E D } ) a n d { l i s p 0067760 N I L } ( f o r { l i s p 0070000 C H A N G E D } ) . \r } } \r \r 0070020 \r { D e f { T y p e ( F i l 0070040 e P a c k a g e T y p e P 0070060 r o p e r t y ) } { N a m e 0070100 W H E N F I L E D } \r { T e x t 0070120 \r V a l u e i s a l i s t 0070140 o f f u n c t i o n s t o 0070160 b e a p p l i e d t o { 0070200 a r g N A M E } , { a r g 0070220 T Y P E } , a n d { a r g 0070240 F I L E } w h e n { a r g 0070260 N A M E } , a n i n s t a n 0070300 c e o f t y p e { a r g 0070320 T Y P E } , i s a d d e d 0070340 t o { a r g F I L E } . \r } 0070360 } \r \r \r { D e f { T y p e ( 0070400 F i l e P a c k a g e T y p 0070420 e P r o p e r t y ) } { N a 0070440 m e W H E N U N F I L E D } \r 0070460 { T e x t \r V a l u e i s a 0070500 l i s t o f f u n c t i o 0070520 n s t o b e a p p l i e d 0070540 t o { a r g N A M E } , 0070560 { a r g T Y P E } , a n d 0070600 { a r g F I L E } w h e n 0070620 { a r g N A M E } , a n i 0070640 n s t a n c e o f t y p e 0070660 { a r g T Y P E } , i s r 0070700 e m o v e d f r o m { a r g 0070720 F I L E } . \r } } \r \r \r { D e 0070740 f { T y p e ( F i l e P a 0070760 c k a g e T y p e P r o p e 0071000 r t y ) } { N a m e D E S C 0071020 R I P T I O N } \r { T e x t \r V 0071040 a l u e i s a s t r i n g 0071060 w h i c h d e s c r i b e s 0071100 i n s t a n c e s o f t h 0071120 i s t y p e . F o r e x 0071140 a m p l e , f o r t y p e 0071160 { l i s p R E C O R D S } , 0071200 t h e v a l u e o f { l i 0071220 s p D E S C R I P T I O N } 0071240 i s t h e s t r i n g { l 0071260 i s p " r e c o r d d e c l 0071300 a r a t i o n s " } . \r } } \r \r 0071320 \r \r T h e f u n c t i o n { 0071340 f n F I L E P K G T Y P E } 0071360 i s u s e d t o d e f i n 0071400 e n e w f i l e p a c k a 0071420 g e t y p e s , o r t o 0071440 c h a n g e t h e p r o p e 0071460 r t i e s o f e x i s t i n 0071500 g t y p e s . N o t e t 0071520 h a t i t i s p o s s i b 0071540 l e t o r e d e f i n e t 0071560 h e a t t r i b u t e s o f 0071600 s y s t e m f i l e p a c 0071620 k a g e t y p e s , s u c h 0071640 a s { l i s p F N S } o 0071660 r { l i s p P R O P S } . \r 0071700 \r { F n D e f { F n N a m e 0071720 F I L E P K G T Y P E } { F n 0071740 A r g s T Y P E P R O P { S 0071760 U B 1 } V A L { S U B 1 } 0072000 { e l l i p s i s } P R O P 0072020 { S U B N } V A L { S U B 0072040 N } } \r { T y p e N O S P R E 0072060 A D } \r { T e x t \r N o s p r e 0072100 a d f u n c t i o n f o r 0072120 d e f i n i n g n e w f i l 0072140 e p a c k a g e t y p e s , 0072160 o r c h a n g i n g p r o 0072200 p e r t i e s o f e x i s t 0072220 i n g f i l e p a c k a g e 0072240 t y p e s . { a r g P R 0072260 O P { s u b i } } i s o n 0072300 e o f t h e p r o p e r t 0072320 y n a m e s g i v e n a b 0072340 o v e ; { a r g V A L { s 0072360 u b i } } i s t h e v a 0072400 l u e t o b e g i v e n 0072420 t o t h a t p r o p e r t y 0072440 . R e t u r n s { a r g 0072460 T Y P E } . \r \r { l i s p ( F 0072500 I L E P K G T Y P E { a r g 0072520 T Y P E } { a r g P R O P } 0072540 ) } r e t u r n s t h e v 0072560 a l u e o f t h e p r o p 0072600 e r t y { a r g P R O P } , 0072620 w i t h o u t c h a n g i n 0072640 g i t . \r \r { l i s p ( F I 0072660 L E P K G T Y P E { a r g T 0072700 Y P E } ) } r e t u r n s a 0072720 n a l i s t o f a l l o 0072740 f t h e d e f i n e d p r 0072760 o p e r t i e s o f { a r g 0073000 T Y P E } , u s i n g t h 0073020 e p r o p e r t y n a m e s 0073040 a s k e y s . \r \r { i n d e 0073060 x * P R I M A R Y * S y n o 0073100 n y m s f o r f i l e p a 0073120 c k a g e t y p e s } \r \r N o 0073140 t e : S p e c i f y i n g 0073160 { a r g T Y P E } a s t h 0073200 e l i t a t o m { l i s p 0073220 T Y P E } c a n b e u s e 0073240 d t o d e f i n e o n e 0073260 f i l e p a c k a g e t y p 0073300 e a s a s y n o n y m o 0073320 f a n o t h e r . F o r 0073340 e x a m p l e , { l i s p ( 0073360 F I L E P K G T Y P E ' R ' 0073400 T Y P E ' R E C O R D S ) } 0073420 d e f i n e s { l i s p R } 0073440 a s a s y n o n y m f o 0073460 r t h e f i l e p a c k a 0073500 g e t y p e { l i s p R E 0073520 C O R D S } . \r } } \r \r \r } { E 0073540 n d S u b S e c D e f i n i 0073560 n g N e w F i l e P a c k 0073600 a g e T y p e s } \r \r \r \r \r \r 0073620 } { E n d S u b S e c F i l 0073640 e P a c k a g e T y p e s } 0073660 \r \r \r \r \0 \0 \0 \0 \0 004 \0 004 \0 ? \0 1 0073700 ( D E F A U L T F O N T 1 ( 0073720 G A C H A 1 0 ) ( G A C H A 0073740 8 ) ( T E R M I N A L 8 ) 0073760 ) \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 ? \0 1 ( 0074000 D E F A U L T F O N T 1 ( G 0074020 A C H A 1 0 ) ( G A C H A 0074040 8 ) ( T E R M I N A L 8 ) ) 0074060 \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 ? \0 1 ( D 0074100 E F A U L T F O N T 1 ( G A 0074120 C H A 1 0 ) ( G A C H A 8 0074140 ) ( T E R M I N A L 8 ) ) \0 0074160 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 ? \0 1 ( D E 0074200 F A U L T F O N T 1 ( G A C 0074220 H A 1 0 ) ( G A C H A 8 ) 0074240 ( T E R M I N A L 8 ) ) \0 \n 0074260 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 w 264 \0 \0 \0 \0 0074300 004 \0 \0 w 264 \0 001 z 272 0074311