Aa3 HH $ d H6$$ff@  d# Footnote TableFootnote**. . / - :;,.!?t/`O4/aTOCHeading!C'sDylanGwydion Implementors Instantiable accessorsbytecharacterdo(rcurry(checkentrancyeofo filestreamifilename forceoutput getinputrinputavailable.limited([value-table]vj \[string-table]TOwk e equal-hashsxl 317767: Function Head: equal-hash [Generic Function]yym tcollection-hashc|p n value-hashs}f Table-Extensions Modulee~q Table-Extensions Libraryr \[string-table]wls r\[hash-state]e(t ecollection-hashuu n sequence-hash(rev u values-hashdw ( string-hashox case-insensitive-string-hashy case-insensitive-equalz remove-all-keys!{ \[equal-table]} n@\[case-insensitive-string-table]D L Km}nf3H m U317767: Function Head: equal-hash [Generic Function]AaVA<$lastpagenum>B*<$daynum01> <$shortmonthname> <$shortyear>C"<$monthnum>/<$daynum>/<$shortyear>D)<$daynum> <$shortmonthname> <$shortyear> E"<$monthnum>/<$daynum>/<$shortyear>F<$monthname> <$daynum>, <$year> eG"<$monthnum>/<$daynum>/<$shortyear>H <$fullfilename> ncI <$filename>oecJ <$paratext[Title]>K <$paratext[Heading]>ioL <$curpagenum>M <$marker1>N <$marker2>O (Continued)e]P+ (Sheet <$tblsheetnum> of <$tblsheetcount>)ecoQPagepage<$pagenum>eenRHeading & Page <$paratext> on page<$pagenum>SSee Heading & Page%See <$paratext> on page<$pagenum>.ntiT Table & Page7Table<$paranumonly>, <$paratext>, on page<$pagenum>lUFunctionfunction <$paratext>5e? 5mm6nn7oo8pp9qqA:rrAda;ss<tt=uuAaum>vyA> |" /uman$deeo>/$eafic o e2. >a[H^om nr1.  ) he$etoPap>e[e& dr eake& n<exwnu~e lra<exeentinasx3. pntA> m!"d#e$/%a&i() $+.=lmnp q)r he{$et|oPa~p>ee& r ae& <exnue lra<exeentinasx3.    Mz-dM<mrnudN<suenH$ OM xH$ md Hw PM Hw nd H$ QM H$ od Hw RM Hw pd HHSM HH qUUd HHTM HH z-rUUd <l" UN l" sn0 a22 May 97  b H VN H wtn! Running H/F 2 e c# d $HWN $H  uUUd dXYd H#* YZX H#* HR HR FootnoteHr7 ZY[X Hr7 HzHz Single LineH'[Z]X\\Footnote \[    HR< ][^X HR< HH Double LineH ^]aX_` Double Line_`^ H`_^H a^cXc bb Single Line"baHZcadX TableFootnoteϸE]G'E dcX ϸE]G'E ϸEwPϸEwP TableFootnoteodevvHz$Hfe $H0$$v $TU TU h%The  qTable-Extensions Library RU+TU `H Introduction @UU zThe Table-Extensions library contains extensions to Dylan s. It exports one module named Table-LUU@Extensions. NUmTU h`$The  fTable-Extensions Module UUh; r j[Instantiable Sealed Class] UU This class is a subclass of 
. It is a table that has s for keys (compared with \=) and s for UU~elements. It is an error to use a key that is not a . It is an error to modify a key once it has been used to UU@,add an element to a . tnUUh(D }[Instantiable Sealed Class] HUU )This class is a subclass of 
. It is a table that has s for keys (compared with case-insensitive-TaUU)raequal) and s for elements. It is an error to use a key that is not a . It is an error to modify a key UU@)neVonce it has been used to add an element to a . UUh=te s[Type] UU  le^UU`in elt-hash-function :: jUU`pitValues g-tvUU`qiahash-id :: UU`Thhash-state ::  UU` Dsequence :: ateUU` tValues TUU`echash-id ::  UU`mehash-state :: haUU`th Description ou!UU tThis function hashes every element of sequence using elt-hash-function, merging the resulting hash codes in R-UU@keorder. nctdglhawwj$Hhg ia$H 00sh-statewe>0UUhDe vvalues-hash[Function] ThUU` e Arguments UU`ng elt-hash-function :: ke*UU`h-#rest values 6UU`otValues s. BUU`eqhash-id :: nNUU`enhash-state ::  ZUU` Description fUU ArThis function hashes each object in the #rest arguments using elt-hash-function, merging the resulting hash codes rUU@ in order. UUhge wstring-hash[Function] ateUU`ha Arguments UU`iostring :: UU`shValues eleUU`sihash-id :: nUU`rehash-state :: UU`r. Description dUU`JThis function produces hash codes for strings using the equality test \=. UUhia0 xcase-insensitive-string-hash[Function] -sUU`e> Arguments UU` string :: nct UU`Values Ar,UU`hash-id :: t8UU`kehash-state ::  DUU` Description esPUU`fThis function produces hash codes for strings using the equality test case-insensitive-equal. kUUh* ycase-insensitive-equal[Function] wUU`t Arguments UU`shstring1 :: tUU`costring2 :: UU`Values geUU`answer :: UU`me Description UU`: 8Performes a case insensitive comparison of the strings. UUhin1 zremove-all-keys![Open Generic Function] tUU` Arguments UU`*coll :: UU`inValues ali UU`*coll :: UU`-s Description "UU`eModifies collection so that the collection no longer contains any keys or elements (i.e., is empty). :=UU`$remove-all-keys![G. F. Method] e>IUU` Arguments UUU`*coll :: ~aUU`thValues y t}mUU`*coll :: |yUU`al Description ] {UU`tZThis method implements remove-all-keys! by repeated calls to remove-key!. dixxooan$Hji $Hks ))rison ofx)UU`re+remove-all-keys![Sealed G. F. Method] UU`Ar Arguments UU`cotable ::
i*UU`> Values U6UU`litable ::
BUU`-e Description llNUU`cThere is a predefined method on 
 which does not necessarily use remove-key. ntadUU` emzDifferent hash functions are not required to return the same hash code for equal or even identical objects. For instance, zUU` :/collection-hash(#(), object-hash, object-hash) UU`m/is not guaranteed to return the same values as ollUU` sequence-hash(#(), object-hash) UU hoFurthermore, collection-hash with ordered: #t is not guaranteed to return the same hash code as collection-hash with UU@$Yordered: #f. (Such a requirement would render the ordered: keyword useless). GUTU ` Extensions UU +revThe Gwydion Project hopes that other Dylan implementations will also implement our Table-Extensions library. However, UU+Va~there are certain things that we realize other implementors are not so likely to implement; we call these things extensions UU@+le"to the Table-Extensions proposal. "UU .}The following definitions are part of the Gwydion Table-Extensions library, but are not part of the current Table-Extensions j.UU@, proposal. IUUhon {[Class] UUU This class is a subclass of 
 that uses the \= function to compare keys and the equal-hash function to oaUUcsgenerate hash codes. If you define your own classes and \= methods specialized on those classes, then you wimUU should define a method for the equal-hash function specialized to your classes (see  gfunction equal-hash [Generic yUULreFunction] h). hoUUhan' i[Abstract Class] TabUU arqThis class is a subclass of 
. Users can define subclasses of this class and provide a method for iUUth~tableprotocol that is specialized to their new subclass. Any subclass of  must use a hash function UUydothat never uses an object's identity (that is, its location in the heap) as a means of computing a hash ID. In IUU |practice, this means hash IDs must be constructed using only value-hash and merge-hash-codes. These tables n UUd sare specifically designed to save overhead in testing hash states and whether the table needs to be rehashed after \UUiaqgarbage collections. The second value of the hash function should always be $permanenthashstate. For nUU@ur example: eUU e3define class ()  UUend class; UU Cl ]"UU>define method table-protocol (table :: ) .UU t&values(\=, string-hash); :UU@taend method; spePUU`ne u\UU as|The Extensions module exports the following functions to make it easier for users to use s and ochUU@ as: adki, yye ns$Hlk ome$H@hed yalUUhad+ k lequal-hash [Generic Function] neUU` a Arguments UU`gakey :: *UU`f Values fun6UU`s hash-id :: sBUU`hash-state :: : eNUU`e Description efZUU e>xThis function returns a hash ID and hash state for use with s. If you define your own classes and effUUroq\= methods specialized on those classes, then you should define a method for the equal-hash function rUUpespecialized to your classes. Specialized methods exist for , , , , and ~UU. The method for  returns the integer 42 and $permanent-hash-state. This function may nsUU@Suse an object's identity (that is, its location in the heap) to produce a hash ID. UUh+ m pvalue-hash [Generic Function] [GUU` ne Arguments UU`!s object :: keUU`"*Values UU`#6hash-id :: iUU`$Bhash-state :: ateUU`%N Description eUU &ZtThis function produces hash codes for objects without using the objects' identities. This function is suitable for ouUU&efuse with s. Table-Extensions provides methods specialized for the following types: , UU@&^, , , , and . 'UU`ti]Caveat: This generic function is not related to the similarly named values-hash. e=UU`e  eH$ mnMTs H$ lOO5matHw nmoMca Hw lPP6nerH$ onpMes H$ lQQ7*Hw poqM:inHw lRR8HHqprMZHHlSS9 thHHrqMiblHHlTT:. l" stNeall" lUU;&H tsuNcraH lVV<U$HutN n$HlWW=$Hven$Hlwff>$Hwgo$Hlvxhh>$Hxip$Hlwyjj>$Hykq$Hlxll> dMLeftrdNRightdX ReferencededgldiT dky&e$0fyQ%  1Heading 1Heading Rule. FirstBody. $$fzSE *H$ 1Step Step Number S:.\tStep. Hf{ % 2Heading .. . ff2ff233@| %H    ht  Argument. @} %iH     he  Body. 33+33$f~B %ul33+n Bullet Bullet SymbolB:\t. ]K$fB % ]m Bullet2. Bullet SymbolB:\t. $$$f *CBullet. $$$f *CStep. ff2ff233@ %H    h  Description. dd33@ %H    hl   u Description2. \ff233@ %H  u t mh:  DItem. KK@ %$H    h  DItem2. 33 @ %33 Endnote.\t. HHH fT% HeadingBody. @  Hl   ui o  h\  Verbatim. 33 @ %t33 :Endnote1.\t. ff2K33@ %H    h  Extra Key Arg. ff2ff2 @ %H n >  h  Function Body. @ % Function Head. HHH fT% HeadingBody. HHHfD %  HeadingSub. $$fS *$ Step Step Number S:.\t. @ H    h  Verbatim. f * CellHeading. f *CellBody. fT *  TableTitleT:Table : . @ %H    h  Body. @ *  Header. @ *  Footer. f %Body. $0fQ%  1Heading 1Heading Rule. FirstBody. ff233@ %H    h  DItem. @ % Function Head. ff2ff2 @ % H    h  Function Body. ff2ff233@ %H    h  Argument. ff2ff233@ H    h  Description. $0fQ%  1Heading 1Heading Rule. FirstBody.   Vz* *  %Argument   Bullet Symbol@%  %Emphasis % _ Computer %Emphasis EquationVariables   Step Number  Subscript  Superscript % Variable _Computer @% Variable %Argument@% Thin%MediumDoubleThicks @ Very Thin    rHHHHHFormat A  HHHsHHFormat Bm}nmComment  a b _c d  e  mg h %d Black!TWhiteuddA@RedddGreendd BluedCyandMagentad YellowW.Palatino.R.700 Palatino-Bold W.Times.R.400 Times-RomanW.Palatino.R.400Palatino-RomanW.Courier.R.400Courier W.Times.R.700 Times-BoldW.Palatino.I.400Palatino-ItalicW.Courier.R.700 Courier-BoldW.Helvetica.R.700Helvetica-Bold7Courier Helvetica%Palatino*Times Regular Regular BoldItalicRegularW4V5J/uOV(Y9sgzd4}҉) 0sPYu3zvhϐ2'NA:&,sW, a᪩,G"@^1\ٱUʻ84s