main
   1<?xml version="1.0"?>
   2<doc>
   3    <assembly>
   4        <name>Iesi.Collections</name>
   5    </assembly>
   6    <members>
   7        <member name="T:Iesi.Collections.Generic.DictionarySet`1">
   8             <summary>
   9             <p><c>DictionarySet</c> is an abstract class that supports the creation of new <c>Set</c>
  10             types where the underlying data store is an <c>IDictionary</c> instance.</p> 
  11              
  12             <p>You can use any object that implements the <c>IDictionary</c> interface to hold set data.
  13             You can define your own, or you can use one of the objects provided in the Framework.   
  14             The type of <c>IDictionary</c> you choose will affect both the performance and the behavior
  15             of the <c>Set</c> using it. </p>
  16            
  17             <p>To make a <c>Set</c> typed based on your own <c>IDictionary</c>, simply derive a
  18             new class with a constructor that takes no parameters.  Some <c>Set</c> implmentations
  19             cannot be defined with a default constructor.  If this is the case for your class, 
  20             you will need to override <c>Clone()</c> as well.</p>
  21            
  22             <p>It is also standard practice that at least one of your constructors takes an <c>ICollection</c> or 
  23             an <c>ISet</c> as an argument.</p>
  24             </summary>
  25        </member>
  26        <member name="T:Iesi.Collections.Generic.Set`1">
  27            <summary><p>A collection that contains no duplicate elements.  This class models the mathematical
  28            <c>Set</c> abstraction, and is the base class for all other <c>Set</c> implementations.  
  29            The order of elements in a set is dependant on (a)the data-structure implementation, and 
  30            (b)the implementation of the various <c>Set</c> methods, and thus is not guaranteed.</p>
  31             
  32            <p>None of the <c>Set</c> implementations in this library are guranteed to be thread-safe
  33            in any way unless wrapped in a <c>SynchronizedSet</c>.</p>
  34            
  35            <p>The following table summarizes the binary operators that are supported by the <c>Set</c> class.</p>
  36            <list type="table">
  37            	<listheader>
  38            		<term>Operation</term>
  39            		<term>Description</term>
  40            		<term>Method</term>
  41            		<term>Operator</term>
  42            	</listheader>
  43            	<item>
  44            		<term>Union (OR)</term>
  45            		<term>Element included in result if it exists in either <c>A</c> OR <c>B</c>.</term>
  46            		<term><c>Union()</c></term>
  47            		<term><c>|</c></term>
  48            	</item>
  49            	<item>
  50            		<term>Intersection (AND)</term>
  51            		<term>Element included in result if it exists in both <c>A</c> AND <c>B</c>.</term>
  52            		<term><c>InterSect()</c></term>
  53            		<term><c>&amp;</c></term>
  54            	</item>
  55            	<item>
  56            		<term>Exclusive Or (XOR)</term>
  57            		<term>Element included in result if it exists in one, but not both, of <c>A</c> and <c>B</c>.</term>
  58            		<term><c>ExclusiveOr()</c></term>
  59            		<term><c>^</c></term>
  60            	</item>
  61            	<item>
  62            		<term>Minus (n/a)</term>
  63            		<term>Take all the elements in <c>A</c>.  Now, if any of them exist in <c>B</c>, remove
  64            		them.  Note that unlike the other operators, <c>A - B</c> is not the same as <c>B - A</c>.</term>
  65            		<term><c>Minus()</c></term>
  66            		<term><c>-</c></term>
  67            	</item>
  68            </list>
  69            </summary>
  70        </member>
  71        <member name="T:Iesi.Collections.Generic.ISet`1">
  72            <summary>
  73            <p>A collection that contains no duplicate elements.  This interface models the mathematical
  74            <c>Set</c> abstraction.    
  75            The order of elements in a set is dependant on (a)the data-structure implementation, and 
  76            (b)the implementation of the various <c>Set</c> methods, and thus is not guaranteed.</p>
  77            
  78            <p>None of the <c>Set</c> implementations in this library are guranteed to be thread-safe
  79            in any way unless wrapped in a <c>SynchronizedSet</c>.</p>
  80            
  81            <p>The following table summarizes the binary operators that are supported by the <c>Set</c> class.</p>
  82            <list type="table">
  83            	<listheader>
  84            		<term>Operation</term>
  85            		<term>Description</term>
  86            		<term>Method</term>
  87            	</listheader>
  88            	<item>
  89            		<term>Union (OR)</term>
  90            		<term>Element included in result if it exists in either <c>A</c> OR <c>B</c>.</term>
  91            		<term><c>Union()</c></term>
  92            	</item>
  93            	<item>
  94            		<term>Intersection (AND)</term>
  95            		<term>Element included in result if it exists in both <c>A</c> AND <c>B</c>.</term>
  96            		<term><c>InterSect()</c></term>
  97            	</item>
  98            	<item>
  99            		<term>Exclusive Or (XOR)</term>
 100            		<term>Element included in result if it exists in one, but not both, of <c>A</c> and <c>B</c>.</term>
 101            		<term><c>ExclusiveOr()</c></term>
 102            	</item>
 103            	<item>
 104            		<term>Minus (n/a)</term>
 105            		<term>Take all the elements in <c>A</c>.  Now, if any of them exist in <c>B</c>, remove
 106            		them.  Note that unlike the other operators, <c>A - B</c> is not the same as <c>B - A</c>.</term>
 107            		<term><c>Minus()</c></term>
 108            	</item>
 109            </list>
 110            </summary>
 111        </member>
 112        <member name="M:Iesi.Collections.Generic.ISet`1.Union(Iesi.Collections.Generic.ISet{`0})">
 113            <summary>
 114            Performs a "union" of the two sets, where all the elements
 115            in both sets are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
 116            Neither this set nor the input set are modified during the operation.  The return value
 117            is a <c>Clone()</c> of this set with the extra elements added in.
 118            </summary>
 119            <param name="a">A collection of elements.</param>
 120            <returns>A new <c>Set</c> containing the union of this <c>Set</c> with the specified collection.
 121            Neither of the input objects is modified by the union.</returns>
 122        </member>
 123        <member name="M:Iesi.Collections.Generic.ISet`1.Intersect(Iesi.Collections.Generic.ISet{`0})">
 124            <summary>
 125            Performs an "intersection" of the two sets, where only the elements
 126            that are present in both sets remain.  That is, the element is included if it exists in
 127            both sets.  The <c>Intersect()</c> operation does not modify the input sets.  It returns
 128            a <c>Clone()</c> of this set with the appropriate elements removed.
 129            </summary>
 130            <param name="a">A set of elements.</param>
 131            <returns>The intersection of this set with <c>a</c>.</returns>
 132        </member>
 133        <member name="M:Iesi.Collections.Generic.ISet`1.Minus(Iesi.Collections.Generic.ISet{`0})">
 134            <summary>
 135            Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
 136            the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
 137            The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
 138            of this <c>Set</c> containing the elements from the operation.
 139            </summary>
 140            <param name="a">A set of elements.</param>
 141            <returns>A set containing the elements from this set with the elements in <c>a</c> removed.</returns>
 142        </member>
 143        <member name="M:Iesi.Collections.Generic.ISet`1.ExclusiveOr(Iesi.Collections.Generic.ISet{`0})">
 144            <summary>
 145            Performs an "exclusive-or" of the two sets, keeping only the elements that
 146            are in one of the sets, but not in both.  The original sets are not modified
 147            during this operation.  The result set is a <c>Clone()</c> of this set containing
 148            the elements from the exclusive-or operation.
 149            </summary>
 150            <param name="a">A set of elements.</param>
 151            <returns>A set containing the result of <c>a ^ b</c>.</returns>
 152        </member>
 153        <member name="M:Iesi.Collections.Generic.ISet`1.ContainsAll(System.Collections.Generic.ICollection{`0})">
 154            <summary>
 155            Returns <see langword="true" /> if the set contains all the elements in the specified collection.
 156            </summary>
 157            <param name="c">A collection of objects.</param>
 158            <returns><see langword="true" /> if the set contains all the elements in the specified collection, <see langword="false" /> otherwise.</returns>
 159        </member>
 160        <member name="M:Iesi.Collections.Generic.ISet`1.Add(`0)">
 161            <summary>
 162            Adds the specified element to this set if it is not already present.
 163            </summary>
 164            <param name="o">The object to add to the set.</param>
 165            <returns><see langword="true" /> is the object was added, <see langword="false" /> if it was already present.</returns>
 166        </member>
 167        <member name="M:Iesi.Collections.Generic.ISet`1.AddAll(System.Collections.Generic.ICollection{`0})">
 168            <summary>
 169            Adds all the elements in the specified collection to the set if they are not already present.
 170            </summary>
 171            <param name="c">A collection of objects to add to the set.</param>
 172            <returns><see langword="true" /> is the set changed as a result of this operation, <see langword="false" /> if not.</returns>
 173        </member>
 174        <member name="M:Iesi.Collections.Generic.ISet`1.RemoveAll(System.Collections.Generic.ICollection{`0})">
 175            <summary>
 176            Remove all the specified elements from this set, if they exist in this set.
 177            </summary>
 178            <param name="c">A collection of elements to remove.</param>
 179            <returns><see langword="true" /> if the set was modified as a result of this operation.</returns>
 180        </member>
 181        <member name="M:Iesi.Collections.Generic.ISet`1.RetainAll(System.Collections.Generic.ICollection{`0})">
 182            <summary>
 183            Retains only the elements in this set that are contained in the specified collection.
 184            </summary>
 185            <param name="c">Collection that defines the set of elements to be retained.</param>
 186            <returns><see langword="true" /> if this set changed as a result of this operation.</returns>
 187        </member>
 188        <member name="P:Iesi.Collections.Generic.ISet`1.IsEmpty">
 189            <summary>
 190            Returns <see langword="true" /> if this set contains no elements.
 191            </summary>
 192        </member>
 193        <member name="T:Iesi.Collections.ISet">
 194            <summary>
 195            <p>A collection that contains no duplicate elements.  This interface models the mathematical
 196            <c>Set</c> abstraction.    
 197            The order of elements in a set is dependant on (a)the data-structure implementation, and 
 198            (b)the implementation of the various <c>Set</c> methods, and thus is not guaranteed.</p>
 199            
 200            <p>None of the <c>Set</c> implementations in this library are guranteed to be thread-safe
 201            in any way unless wrapped in a <c>SynchronizedSet</c>.</p>
 202            
 203            <p>The following table summarizes the binary operators that are supported by the <c>Set</c> class.</p>
 204            <list type="table">
 205            	<listheader>
 206            		<term>Operation</term>
 207            		<term>Description</term>
 208            		<term>Method</term>
 209            	</listheader>
 210            	<item>
 211            		<term>Union (OR)</term>
 212            		<term>Element included in result if it exists in either <c>A</c> OR <c>B</c>.</term>
 213            		<term><c>Union()</c></term>
 214            	</item>
 215            	<item>
 216            		<term>Intersection (AND)</term>
 217            		<term>Element included in result if it exists in both <c>A</c> AND <c>B</c>.</term>
 218            		<term><c>InterSect()</c></term>
 219            	</item>
 220            	<item>
 221            		<term>Exclusive Or (XOR)</term>
 222            		<term>Element included in result if it exists in one, but not both, of <c>A</c> and <c>B</c>.</term>
 223            		<term><c>ExclusiveOr()</c></term>
 224            	</item>
 225            	<item>
 226            		<term>Minus (n/a)</term>
 227            		<term>Take all the elements in <c>A</c>.  Now, if any of them exist in <c>B</c>, remove
 228            		them.  Note that unlike the other operators, <c>A - B</c> is not the same as <c>B - A</c>.</term>
 229            		<term><c>Minus()</c></term>
 230            	</item>
 231            </list>
 232            </summary>
 233        </member>
 234        <member name="M:Iesi.Collections.ISet.Union(Iesi.Collections.ISet)">
 235            <summary>
 236            Performs a "union" of the two sets, where all the elements
 237            in both sets are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
 238            Neither this set nor the input set are modified during the operation.  The return value
 239            is a <c>Clone()</c> of this set with the extra elements added in.
 240            </summary>
 241            <param name="a">A collection of elements.</param>
 242            <returns>A new <c>Set</c> containing the union of this <c>Set</c> with the specified collection.
 243            Neither of the input objects is modified by the union.</returns>
 244        </member>
 245        <member name="M:Iesi.Collections.ISet.Intersect(Iesi.Collections.ISet)">
 246            <summary>
 247            Performs an "intersection" of the two sets, where only the elements
 248            that are present in both sets remain.  That is, the element is included if it exists in
 249            both sets.  The <c>Intersect()</c> operation does not modify the input sets.  It returns
 250            a <c>Clone()</c> of this set with the appropriate elements removed.
 251            </summary>
 252            <param name="a">A set of elements.</param>
 253            <returns>The intersection of this set with <c>a</c>.</returns>
 254        </member>
 255        <member name="M:Iesi.Collections.ISet.Minus(Iesi.Collections.ISet)">
 256            <summary>
 257            Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
 258            the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
 259            The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
 260            of this <c>Set</c> containing the elements from the operation.
 261            </summary>
 262            <param name="a">A set of elements.</param>
 263            <returns>A set containing the elements from this set with the elements in <c>a</c> removed.</returns>
 264        </member>
 265        <member name="M:Iesi.Collections.ISet.ExclusiveOr(Iesi.Collections.ISet)">
 266            <summary>
 267            Performs an "exclusive-or" of the two sets, keeping only the elements that
 268            are in one of the sets, but not in both.  The original sets are not modified
 269            during this operation.  The result set is a <c>Clone()</c> of this set containing
 270            the elements from the exclusive-or operation.
 271            </summary>
 272            <param name="a">A set of elements.</param>
 273            <returns>A set containing the result of <c>a ^ b</c>.</returns>
 274        </member>
 275        <member name="M:Iesi.Collections.ISet.Contains(System.Object)">
 276            <summary>
 277            Returns <see langword="true" /> if this set contains the specified element.
 278            </summary>
 279            <param name="o">The element to look for.</param>
 280            <returns><see langword="true" /> if this set contains the specified element, <see langword="false" /> otherwise.</returns>
 281        </member>
 282        <member name="M:Iesi.Collections.ISet.ContainsAll(System.Collections.ICollection)">
 283            <summary>
 284            Returns <see langword="true" /> if the set contains all the elements in the specified collection.
 285            </summary>
 286            <param name="c">A collection of objects.</param>
 287            <returns><see langword="true" /> if the set contains all the elements in the specified collection, <see langword="false" /> otherwise.</returns>
 288        </member>
 289        <member name="M:Iesi.Collections.ISet.Add(System.Object)">
 290            <summary>
 291            Adds the specified element to this set if it is not already present.
 292            </summary>
 293            <param name="o">The object to add to the set.</param>
 294            <returns><see langword="true" /> is the object was added, <see langword="false" /> if it was already present.</returns>
 295        </member>
 296        <member name="M:Iesi.Collections.ISet.AddAll(System.Collections.ICollection)">
 297            <summary>
 298            Adds all the elements in the specified collection to the set if they are not already present.
 299            </summary>
 300            <param name="c">A collection of objects to add to the set.</param>
 301            <returns><see langword="true" /> is the set changed as a result of this operation, <see langword="false" /> if not.</returns>
 302        </member>
 303        <member name="M:Iesi.Collections.ISet.Remove(System.Object)">
 304            <summary>
 305            Removes the specified element from the set.
 306            </summary>
 307            <param name="o">The element to be removed.</param>
 308            <returns><see langword="true" /> if the set contained the specified element, <see langword="false" /> otherwise.</returns>
 309        </member>
 310        <member name="M:Iesi.Collections.ISet.RemoveAll(System.Collections.ICollection)">
 311            <summary>
 312            Remove all the specified elements from this set, if they exist in this set.
 313            </summary>
 314            <param name="c">A collection of elements to remove.</param>
 315            <returns><see langword="true" /> if the set was modified as a result of this operation.</returns>
 316        </member>
 317        <member name="M:Iesi.Collections.ISet.RetainAll(System.Collections.ICollection)">
 318            <summary>
 319            Retains only the elements in this set that are contained in the specified collection.
 320            </summary>
 321            <param name="c">Collection that defines the set of elements to be retained.</param>
 322            <returns><see langword="true" /> if this set changed as a result of this operation.</returns>
 323        </member>
 324        <member name="M:Iesi.Collections.ISet.Clear">
 325            <summary>
 326            Removes all objects from the set.
 327            </summary>
 328        </member>
 329        <member name="P:Iesi.Collections.ISet.IsEmpty">
 330            <summary>
 331            Returns <see langword="true" /> if this set contains no elements.
 332            </summary>
 333        </member>
 334        <member name="M:Iesi.Collections.Generic.Set`1.Union(Iesi.Collections.Generic.ISet{`0})">
 335            <summary>
 336            Performs a "union" of the two sets, where all the elements
 337            in both sets are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
 338            Neither this set nor the input set are modified during the operation.  The return value
 339            is a <c>Clone()</c> of this set with the extra elements added in.
 340            </summary>
 341            <param name="a">A collection of elements.</param>
 342            <returns>A new <c>Set</c> containing the union of this <c>Set</c> with the specified collection.
 343            Neither of the input objects is modified by the union.</returns>
 344        </member>
 345        <member name="M:Iesi.Collections.Generic.Set`1.Union(Iesi.Collections.Generic.ISet{`0},Iesi.Collections.Generic.ISet{`0})">
 346            <summary>
 347            Performs a "union" of two sets, where all the elements
 348            in both are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
 349            The return value is a <c>Clone()</c> of one of the sets (<c>a</c> if it is not <see langword="null" />) with elements of the other set
 350            added in.  Neither of the input sets is modified by the operation.
 351            </summary>
 352            <param name="a">A set of elements.</param>
 353            <param name="b">A set of elements.</param>
 354            <returns>A set containing the union of the input sets.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
 355        </member>
 356        <member name="M:Iesi.Collections.Generic.Set`1.op_BitwiseOr(Iesi.Collections.Generic.Set{`0},Iesi.Collections.Generic.Set{`0})">
 357            <summary>
 358            Performs a "union" of two sets, where all the elements
 359            in both are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
 360            The return value is a <c>Clone()</c> of one of the sets (<c>a</c> if it is not <see langword="null" />) with elements of the other set
 361            added in.  Neither of the input sets is modified by the operation.
 362            </summary>
 363            <param name="a">A set of elements.</param>
 364            <param name="b">A set of elements.</param>
 365            <returns>A set containing the union of the input sets.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
 366        </member>
 367        <member name="M:Iesi.Collections.Generic.Set`1.Intersect(Iesi.Collections.Generic.ISet{`0})">
 368            <summary>
 369            Performs an "intersection" of the two sets, where only the elements
 370            that are present in both sets remain.  That is, the element is included if it exists in
 371            both sets.  The <c>Intersect()</c> operation does not modify the input sets.  It returns
 372            a <c>Clone()</c> of this set with the appropriate elements removed.
 373            </summary>
 374            <param name="a">A set of elements.</param>
 375            <returns>The intersection of this set with <c>a</c>.</returns>
 376        </member>
 377        <member name="M:Iesi.Collections.Generic.Set`1.Intersect(Iesi.Collections.Generic.ISet{`0},Iesi.Collections.Generic.ISet{`0})">
 378            <summary>
 379            Performs an "intersection" of the two sets, where only the elements
 380            that are present in both sets remain.  That is, the element is included only if it exists in
 381            both <c>a</c> and <c>b</c>.  Neither input object is modified by the operation.
 382            The result object is a <c>Clone()</c> of one of the input objects (<c>a</c> if it is not <see langword="null" />) containing the
 383            elements from the intersect operation. 
 384            </summary>
 385            <param name="a">A set of elements.</param>
 386            <param name="b">A set of elements.</param>
 387            <returns>The intersection of the two input sets.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
 388        </member>
 389        <member name="M:Iesi.Collections.Generic.Set`1.op_BitwiseAnd(Iesi.Collections.Generic.Set{`0},Iesi.Collections.Generic.Set{`0})">
 390            <summary>
 391            Performs an "intersection" of the two sets, where only the elements
 392            that are present in both sets remain.  That is, the element is included only if it exists in
 393            both <c>a</c> and <c>b</c>.  Neither input object is modified by the operation.
 394            The result object is a <c>Clone()</c> of one of the input objects (<c>a</c> if it is not <see langword="null" />) containing the
 395            elements from the intersect operation. 
 396            </summary>
 397            <param name="a">A set of elements.</param>
 398            <param name="b">A set of elements.</param>
 399            <returns>The intersection of the two input sets.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
 400        </member>
 401        <member name="M:Iesi.Collections.Generic.Set`1.Minus(Iesi.Collections.Generic.ISet{`0})">
 402            <summary>
 403            Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
 404            the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
 405            The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
 406            of this <c>Set</c> containing the elements from the operation.
 407            </summary>
 408            <param name="a">A set of elements.</param>
 409            <returns>A set containing the elements from this set with the elements in <c>a</c> removed.</returns>
 410        </member>
 411        <member name="M:Iesi.Collections.Generic.Set`1.Minus(Iesi.Collections.Generic.ISet{`0},Iesi.Collections.Generic.ISet{`0})">
 412            <summary>
 413            Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
 414            the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
 415            The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
 416            of set <c>a</c> containing the elements from the operation. 
 417            </summary>
 418            <param name="a">A set of elements.</param>
 419            <param name="b">A set of elements.</param>
 420            <returns>A set containing <c>A - B</c> elements.  <see langword="null" /> if <c>a</c> is <see langword="null" />.</returns>
 421        </member>
 422        <member name="M:Iesi.Collections.Generic.Set`1.op_Subtraction(Iesi.Collections.Generic.Set{`0},Iesi.Collections.Generic.Set{`0})">
 423            <summary>
 424            Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
 425            the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
 426            The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
 427            of set <c>a</c> containing the elements from the operation. 
 428            </summary>
 429            <param name="a">A set of elements.</param>
 430            <param name="b">A set of elements.</param>
 431            <returns>A set containing <c>A - B</c> elements.  <see langword="null" /> if <c>a</c> is <see langword="null" />.</returns>
 432        </member>
 433        <member name="M:Iesi.Collections.Generic.Set`1.ExclusiveOr(Iesi.Collections.Generic.ISet{`0})">
 434            <summary>
 435            Performs an "exclusive-or" of the two sets, keeping only the elements that
 436            are in one of the sets, but not in both.  The original sets are not modified
 437            during this operation.  The result set is a <c>Clone()</c> of this set containing
 438            the elements from the exclusive-or operation.
 439            </summary>
 440            <param name="a">A set of elements.</param>
 441            <returns>A set containing the result of <c>a ^ b</c>.</returns>
 442        </member>
 443        <member name="M:Iesi.Collections.Generic.Set`1.ExclusiveOr(Iesi.Collections.Generic.ISet{`0},Iesi.Collections.Generic.ISet{`0})">
 444            <summary>
 445            Performs an "exclusive-or" of the two sets, keeping only the elements that
 446            are in one of the sets, but not in both.  The original sets are not modified
 447            during this operation.  The result set is a <c>Clone()</c> of one of the sets
 448            (<c>a</c> if it is not <see langword="null" />) containing
 449            the elements from the exclusive-or operation.
 450            </summary>
 451            <param name="a">A set of elements.</param>
 452            <param name="b">A set of elements.</param>
 453            <returns>A set containing the result of <c>a ^ b</c>.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
 454        </member>
 455        <member name="M:Iesi.Collections.Generic.Set`1.op_ExclusiveOr(Iesi.Collections.Generic.Set{`0},Iesi.Collections.Generic.Set{`0})">
 456            <summary>
 457            Performs an "exclusive-or" of the two sets, keeping only the elements that
 458            are in one of the sets, but not in both.  The original sets are not modified
 459            during this operation.  The result set is a <c>Clone()</c> of one of the sets
 460            (<c>a</c> if it is not <see langword="null" />) containing
 461            the elements from the exclusive-or operation.
 462            </summary>
 463            <param name="a">A set of elements.</param>
 464            <param name="b">A set of elements.</param>
 465            <returns>A set containing the result of <c>a ^ b</c>.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
 466        </member>
 467        <member name="M:Iesi.Collections.Generic.Set`1.Add(`0)">
 468            <summary>
 469            Adds the specified element to this set if it is not already present.
 470            </summary>
 471            <param name="o">The object to add to the set.</param>
 472            <returns><see langword="true" /> is the object was added, <see langword="false" /> if it was already present.</returns>
 473        </member>
 474        <member name="M:Iesi.Collections.Generic.Set`1.AddAll(System.Collections.Generic.ICollection{`0})">
 475            <summary>
 476            Adds all the elements in the specified collection to the set if they are not already present.
 477            </summary>
 478            <param name="c">A collection of objects to add to the set.</param>
 479            <returns><see langword="true" /> is the set changed as a result of this operation, <see langword="false" /> if not.</returns>
 480        </member>
 481        <member name="M:Iesi.Collections.Generic.Set`1.Clear">
 482            <summary>
 483            Removes all objects from the set.
 484            </summary>
 485        </member>
 486        <member name="M:Iesi.Collections.Generic.Set`1.Contains(`0)">
 487            <summary>
 488            Returns <see langword="true" /> if this set contains the specified element.
 489            </summary>
 490            <param name="o">The element to look for.</param>
 491            <returns><see langword="true" /> if this set contains the specified element, <see langword="false" /> otherwise.</returns>
 492        </member>
 493        <member name="M:Iesi.Collections.Generic.Set`1.ContainsAll(System.Collections.Generic.ICollection{`0})">
 494            <summary>
 495            Returns <see langword="true" /> if the set contains all the elements in the specified collection.
 496            </summary>
 497            <param name="c">A collection of objects.</param>
 498            <returns><see langword="true" /> if the set contains all the elements in the specified collection, <see langword="false" /> otherwise.</returns>
 499        </member>
 500        <member name="M:Iesi.Collections.Generic.Set`1.Remove(`0)">
 501            <summary>
 502            Removes the specified element from the set.
 503            </summary>
 504            <param name="o">The element to be removed.</param>
 505            <returns><see langword="true" /> if the set contained the specified element, <see langword="false" /> otherwise.</returns>
 506        </member>
 507        <member name="M:Iesi.Collections.Generic.Set`1.RemoveAll(System.Collections.Generic.ICollection{`0})">
 508            <summary>
 509            Remove all the specified elements from this set, if they exist in this set.
 510            </summary>
 511            <param name="c">A collection of elements to remove.</param>
 512            <returns><see langword="true" /> if the set was modified as a result of this operation.</returns>
 513        </member>
 514        <member name="M:Iesi.Collections.Generic.Set`1.RetainAll(System.Collections.Generic.ICollection{`0})">
 515            <summary>
 516            Retains only the elements in this set that are contained in the specified collection.
 517            </summary>
 518            <param name="c">Collection that defines the set of elements to be retained.</param>
 519            <returns><see langword="true" /> if this set changed as a result of this operation.</returns>
 520        </member>
 521        <member name="M:Iesi.Collections.Generic.Set`1.Clone">
 522            <summary>
 523            Returns a clone of the <c>Set</c> instance.  This will work for derived <c>Set</c>
 524            classes if the derived class implements a constructor that takes no arguments.
 525            </summary>
 526            <returns>A clone of this object.</returns>
 527        </member>
 528        <member name="M:Iesi.Collections.Generic.Set`1.CopyTo(`0[],System.Int32)">
 529            <summary>
 530            Copies the elements in the <c>Set</c> to an array.  The type of array needs
 531            to be compatible with the objects in the <c>Set</c>, obviously.
 532            </summary>
 533            <param name="array">An array that will be the target of the copy operation.</param>
 534            <param name="index">The zero-based index where copying will start.</param>
 535        </member>
 536        <member name="M:Iesi.Collections.Generic.Set`1.GetEnumerator">
 537            <summary>
 538            Gets an enumerator for the elements in the <c>Set</c>.
 539            </summary>
 540            <returns>An <c>IEnumerator</c> over the elements in the <c>Set</c>.</returns>
 541        </member>
 542        <member name="M:Iesi.Collections.Generic.Set`1.NonGenericCopyTo(System.Array,System.Int32)">
 543            <summary>
 544            Performs CopyTo when called trhough non-generic ISet (ICollection) interface
 545            </summary>
 546            <param name="array"></param>
 547            <param name="index"></param>
 548        </member>
 549        <member name="M:Iesi.Collections.Generic.Set`1.NonGenericUnion(Iesi.Collections.ISet)">
 550            <summary>
 551            Performs Union when called trhough non-generic ISet interface
 552            </summary>
 553            <param name="a"></param>
 554            <returns></returns>
 555        </member>
 556        <member name="M:Iesi.Collections.Generic.Set`1.NonGenericMinus(Iesi.Collections.ISet)">
 557            <summary>
 558            Performs Minus when called trhough non-generic ISet interface
 559            </summary>
 560            <param name="a"></param>
 561            <returns></returns>
 562        </member>
 563        <member name="M:Iesi.Collections.Generic.Set`1.NonGenericIntersect(Iesi.Collections.ISet)">
 564            <summary>
 565            Performs Intersect when called trhough non-generic ISet interface
 566            </summary>
 567            <param name="a"></param>
 568            <returns></returns>
 569        </member>
 570        <member name="M:Iesi.Collections.Generic.Set`1.NonGenericExclusiveOr(Iesi.Collections.ISet)">
 571            <summary>
 572            Performs ExclusiveOr when called trhough non-generic ISet interface
 573            </summary>
 574            <param name="a"></param>
 575            <returns></returns>
 576        </member>
 577        <member name="P:Iesi.Collections.Generic.Set`1.IsEmpty">
 578            <summary>
 579            Returns <see langword="true" /> if this set contains no elements.
 580            </summary>
 581        </member>
 582        <member name="P:Iesi.Collections.Generic.Set`1.Count">
 583            <summary>
 584            The number of elements currently contained in this collection.
 585            </summary>
 586        </member>
 587        <member name="P:Iesi.Collections.Generic.Set`1.IsSynchronized">
 588            <summary>
 589            Returns <see langword="true" /> if the <c>Set</c> is synchronized across threads.  Note that
 590            enumeration is inherently not thread-safe.  Use the <c>SyncRoot</c> to lock the
 591            object during enumeration.
 592            </summary>
 593        </member>
 594        <member name="P:Iesi.Collections.Generic.Set`1.SyncRoot">
 595            <summary>
 596            An object that can be used to synchronize this collection to make it thread-safe.
 597            When implementing this, if your object uses a base object, like an <c>IDictionary</c>,
 598            or anything that has a <c>SyncRoot</c>, return that object instead of "<c>this</c>".
 599            </summary>
 600        </member>
 601        <member name="P:Iesi.Collections.Generic.Set`1.IsReadOnly">
 602            <summary>
 603            Indicates whether the given instance is read-only or not
 604            </summary>
 605            <value>
 606            <see langword="true" /> if the ISet is read-only; otherwise, <see langword="false" />. 
 607            In the default implementation of Set, this property always returns false. 
 608            </value>
 609        </member>
 610        <member name="F:Iesi.Collections.Generic.DictionarySet`1.InternalDictionary">
 611            <summary>
 612            Provides the storage for elements in the <c>Set</c>, stored as the key-set
 613            of the <c>IDictionary</c> object.  Set this object in the constructor
 614            if you create your own <c>Set</c> class.  
 615            </summary>
 616        </member>
 617        <member name="M:Iesi.Collections.Generic.DictionarySet`1.Add(`0)">
 618            <summary>
 619            Adds the specified element to this set if it is not already present.
 620            </summary>
 621            <param name="o">The <typeparamref name="T"/> to add to the set.</param>
 622            <returns><see langword="true" /> is the object was added, <see langword="false" /> if it was already present.</returns>
 623        </member>
 624        <member name="M:Iesi.Collections.Generic.DictionarySet`1.AddAll(System.Collections.Generic.ICollection{`0})">
 625            <summary>
 626            Adds all the elements in the specified collection to the set if they are not already present.
 627            </summary>
 628            <param name="c">A collection of objects to add to the set.</param>
 629            <returns><see langword="true" /> is the set changed as a result of this operation, <see langword="false" /> if not.</returns>
 630        </member>
 631        <member name="M:Iesi.Collections.Generic.DictionarySet`1.Clear">
 632            <summary>
 633            Removes all objects from the set.
 634            </summary>
 635        </member>
 636        <member name="M:Iesi.Collections.Generic.DictionarySet`1.Contains(`0)">
 637            <summary>
 638            Returns <see langword="true" /> if this set contains the specified element.
 639            </summary>
 640            <param name="o">The element to look for.</param>
 641            <returns><see langword="true" /> if this set contains the specified element, <see langword="false" /> otherwise.</returns>
 642        </member>
 643        <member name="M:Iesi.Collections.Generic.DictionarySet`1.ContainsAll(System.Collections.Generic.ICollection{`0})">
 644            <summary>
 645            Returns <see langword="true" /> if the set contains all the elements in the specified collection.
 646            </summary>
 647            <param name="c">A collection of objects.</param>
 648            <returns><see langword="true" /> if the set contains all the elements in the specified collection, <see langword="false" /> otherwise.</returns>
 649        </member>
 650        <member name="M:Iesi.Collections.Generic.DictionarySet`1.Remove(`0)">
 651            <summary>
 652            Removes the specified element from the set.
 653            </summary>
 654            <param name="o">The element to be removed.</param>
 655            <returns><see langword="true" /> if the set contained the specified element, <see langword="false" /> otherwise.</returns>
 656        </member>
 657        <member name="M:Iesi.Collections.Generic.DictionarySet`1.RemoveAll(System.Collections.Generic.ICollection{`0})">
 658            <summary>
 659            Remove all the specified elements from this set, if they exist in this set.
 660            </summary>
 661            <param name="c">A collection of elements to remove.</param>
 662            <returns><see langword="true" /> if the set was modified as a result of this operation.</returns>
 663        </member>
 664        <member name="M:Iesi.Collections.Generic.DictionarySet`1.RetainAll(System.Collections.Generic.ICollection{`0})">
 665            <summary>
 666            Retains only the elements in this set that are contained in the specified collection.
 667            </summary>
 668            <param name="c">Collection that defines the set of elements to be retained.</param>
 669            <returns><see langword="true" /> if this set changed as a result of this operation.</returns>
 670        </member>
 671        <member name="M:Iesi.Collections.Generic.DictionarySet`1.CopyTo(`0[],System.Int32)">
 672            <summary>
 673            Copies the elements in the <c>Set</c> to an array of T.  The type of array needs
 674            to be compatible with the objects in the <c>Set</c>, obviously.
 675            </summary>
 676            <param name="array">An array that will be the target of the copy operation.</param>
 677            <param name="index">The zero-based index where copying will start.</param>
 678        </member>
 679        <member name="M:Iesi.Collections.Generic.DictionarySet`1.GetEnumerator">
 680            <summary>
 681            Gets an enumerator for the elements in the <c>Set</c>.
 682            </summary>
 683            <returns>An <c>IEnumerator</c> over the elements in the <c>Set</c>.</returns>
 684        </member>
 685        <member name="M:Iesi.Collections.Generic.DictionarySet`1.NonGenericCopyTo(System.Array,System.Int32)">
 686            <summary>
 687            Copies the elements in the <c>Set</c> to an array.  The type of array needs
 688            to be compatible with the objects in the <c>Set</c>, obviously. Needed for 
 689            non-generic ISet methods implementation
 690            </summary>
 691            <param name="array">An array that will be the target of the copy operation.</param>
 692            <param name="index">The zero-based index where copying will start.</param>
 693        </member>
 694        <member name="P:Iesi.Collections.Generic.DictionarySet`1.Placeholder">
 695            <summary>
 696            The placeholder object used as the value for the <c>IDictionary</c> instance.
 697            </summary>
 698            <remarks>
 699            There is a single instance of this object globally, used for all <c>Sets</c>.
 700            </remarks>
 701        </member>
 702        <member name="P:Iesi.Collections.Generic.DictionarySet`1.IsEmpty">
 703            <summary>
 704            Returns <see langword="true" /> if this set contains no elements.
 705            </summary>
 706        </member>
 707        <member name="P:Iesi.Collections.Generic.DictionarySet`1.Count">
 708            <summary>
 709            The number of elements contained in this collection.
 710            </summary>
 711        </member>
 712        <member name="P:Iesi.Collections.Generic.DictionarySet`1.IsSynchronized">
 713            <summary>
 714            None of the objects based on <c>DictionarySet</c> are synchronized.  Use the
 715            <c>SyncRoot</c> property instead.
 716            </summary>
 717        </member>
 718        <member name="P:Iesi.Collections.Generic.DictionarySet`1.SyncRoot">
 719            <summary>
 720            Returns an object that can be used to synchronize the <c>Set</c> between threads.
 721            </summary>
 722        </member>
 723        <member name="P:Iesi.Collections.Generic.DictionarySet`1.IsReadOnly">
 724            <summary>
 725            Indicates wether the <c>Set</c> is read-only or not
 726            </summary>
 727        </member>
 728        <member name="T:Iesi.Collections.Generic.HashedSet`1">
 729            <summary>
 730            Implements a <c>Set</c> based on a Dictionary (which is equivalent of 
 731            non-genric <c>HashTable</c>) This will give the best lookup, add, and remove
 732            performance for very large data-sets, but iteration will occur in no particular order.
 733            </summary>
 734        </member>
 735        <member name="M:Iesi.Collections.Generic.HashedSet`1.#ctor">
 736            <summary>
 737            Creates a new set instance based on a Dictinary.
 738            </summary>
 739        </member>
 740        <member name="M:Iesi.Collections.Generic.HashedSet`1.#ctor(System.Collections.Generic.ICollection{`0})">
 741            <summary>
 742            Creates a new set instance based on a Dictinary and
 743            initializes it based on a collection of elements.
 744            </summary>
 745            <param name="initialValues">A collection of elements that defines the initial set contents.</param>
 746        </member>
 747        <member name="T:Iesi.Collections.Generic.ImmutableSet`1">
 748            <summary>
 749            <p>Implements an immutable (read-only) <c>Set</c> wrapper.</p>
 750            <p>Although this is advertised as immutable, it really isn't.  Anyone with access to the
 751            <c>basisSet</c> can still change the data-set.  So <c>GetHashCode()</c> is not implemented
 752            for this <c>Set</c>, as is the case for all <c>Set</c> implementations in this library.
 753            This design decision was based on the efficiency of not having to <c>Clone()</c> the 
 754            <c>basisSet</c> every time you wrap a mutable <c>Set</c>.</p>
 755            </summary>
 756        </member>
 757        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.#ctor(Iesi.Collections.Generic.ISet{`0})">
 758            <summary>
 759            Constructs an immutable (read-only) <c>Set</c> wrapper.
 760            </summary>
 761            <param name="basisSet">The <c>Set</c> that is wrapped.</param>
 762        </member>
 763        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.Add(`0)">
 764            <summary>
 765            Adds the specified element to this set if it is not already present.
 766            </summary>
 767            <param name="o">The object to add to the set.</param>
 768            <returns>nothing</returns>
 769            <exception cref="T:System.NotSupportedException"> is always thrown</exception>
 770        </member>
 771        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.AddAll(System.Collections.Generic.ICollection{`0})">
 772            <summary>
 773            Adds all the elements in the specified collection to the set if they are not already present.
 774            </summary>
 775            <param name="c">A collection of objects to add to the set.</param>
 776            <returns>nothing</returns>
 777            <exception cref="T:System.NotSupportedException"> is always thrown</exception>
 778        </member>
 779        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.Clear">
 780            <summary>
 781            Removes all objects from the set.
 782            </summary>
 783            <exception cref="T:System.NotSupportedException"> is always thrown</exception>
 784        </member>
 785        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.Contains(`0)">
 786            <summary>
 787            Returns <see langword="true" /> if this set contains the specified element.
 788            </summary>
 789            <param name="o">The element to look for.</param>
 790            <returns><see langword="true" /> if this set contains the specified element, <see langword="false" /> otherwise.</returns>
 791        </member>
 792        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.ContainsAll(System.Collections.Generic.ICollection{`0})">
 793            <summary>
 794            Returns <see langword="true" /> if the set contains all the elements in the specified collection.
 795            </summary>
 796            <param name="c">A collection of objects.</param>
 797            <returns><see langword="true" /> if the set contains all the elements in the specified collection, <see langword="false" /> otherwise.</returns>
 798        </member>
 799        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.Remove(`0)">
 800            <summary>
 801            Removes the specified element from the set.
 802            </summary>
 803            <param name="o">The element to be removed.</param>
 804            <returns>nothing</returns>
 805            <exception cref="T:System.NotSupportedException"> is always thrown</exception>
 806        </member>
 807        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.RemoveAll(System.Collections.Generic.ICollection{`0})">
 808            <summary>
 809            Remove all the specified elements from this set, if they exist in this set.
 810            </summary>
 811            <param name="c">A collection of elements to remove.</param>
 812            <returns>nothing</returns>
 813            <exception cref="T:System.NotSupportedException"> is always thrown</exception>
 814        </member>
 815        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.RetainAll(System.Collections.Generic.ICollection{`0})">
 816            <summary>
 817            Retains only the elements in this set that are contained in the specified collection.
 818            </summary>
 819            <param name="c">Collection that defines the set of elements to be retained.</param>
 820            <returns>nothing</returns>
 821            <exception cref="T:System.NotSupportedException"> is always thrown</exception>
 822        </member>
 823        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.CopyTo(`0[],System.Int32)">
 824            <summary>
 825            Copies the elements in the <c>Set</c> to an array of T. The type of array needs
 826            to be compatible with the objects in the <c>Set</c>, obviously.
 827            </summary>
 828            <param name="array">An array that will be the target of the copy operation.</param>
 829            <param name="index">The zero-based index where copying will start.</param>
 830        </member>
 831        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.GetEnumerator">
 832            <summary>
 833            Gets an enumerator for the elements in the <c>Set</c>.
 834            </summary>
 835            <returns>An <c>IEnumerator</c> over the elements in the <c>Set</c>.</returns>
 836        </member>
 837        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.Clone">
 838            <summary>
 839            Returns a clone of the <c>Set</c> instance.  
 840            </summary>
 841            <returns>A clone of this object.</returns>
 842        </member>
 843        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.Union(Iesi.Collections.Generic.ISet{`0})">
 844            <summary>
 845            Performs a "union" of the two sets, where all the elements
 846            in both sets are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
 847            Neither this set nor the input set are modified during the operation.  The return value
 848            is a <c>Clone()</c> of this set with the extra elements added in.
 849            </summary>
 850            <param name="a">A collection of elements.</param>
 851            <returns>A new <c>Set</c> containing the union of this <c>Set</c> with the specified collection.
 852            Neither of the input objects is modified by the union.</returns>
 853        </member>
 854        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.Intersect(Iesi.Collections.Generic.ISet{`0})">
 855            <summary>
 856            Performs an "intersection" of the two sets, where only the elements
 857            that are present in both sets remain.  That is, the element is included if it exists in
 858            both sets.  The <c>Intersect()</c> operation does not modify the input sets.  It returns
 859            a <c>Clone()</c> of this set with the appropriate elements removed.
 860            </summary>
 861            <param name="a">A set of elements.</param>
 862            <returns>The intersection of this set with <c>a</c>.</returns>
 863        </member>
 864        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.Minus(Iesi.Collections.Generic.ISet{`0})">
 865            <summary>
 866            Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
 867            the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
 868            The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
 869            of this <c>Set</c> containing the elements from the operation.
 870            </summary>
 871            <param name="a">A set of elements.</param>
 872            <returns>A set containing the elements from this set with the elements in <c>a</c> removed.</returns>
 873        </member>
 874        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.ExclusiveOr(Iesi.Collections.Generic.ISet{`0})">
 875            <summary>
 876            Performs an "exclusive-or" of the two sets, keeping only the elements that
 877            are in one of the sets, but not in both.  The original sets are not modified
 878            during this operation.  The result set is a <c>Clone()</c> of this set containing
 879            the elements from the exclusive-or operation.
 880            </summary>
 881            <param name="a">A set of elements.</param>
 882            <returns>A set containing the result of <c>a ^ b</c>.</returns>
 883        </member>
 884        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.NonGenericCopyTo(System.Array,System.Int32)">
 885            <summary>
 886            Performs CopyTo when called trhough non-generic ISet (ICollection) interface
 887            </summary>
 888            <param name="array"></param>
 889            <param name="index"></param>
 890        </member>
 891        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.NonGenericUnion(Iesi.Collections.ISet)">
 892            <summary>
 893            Performs Union when called trhough non-generic ISet interface
 894            </summary>
 895            <param name="a"></param>
 896            <returns></returns>
 897        </member>
 898        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.NonGenericMinus(Iesi.Collections.ISet)">
 899            <summary>
 900            Performs Minus when called trhough non-generic ISet interface
 901            </summary>
 902            <param name="a"></param>
 903            <returns></returns>
 904        </member>
 905        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.NonGenericIntersect(Iesi.Collections.ISet)">
 906            <summary>
 907            Performs Intersect when called trhough non-generic ISet interface
 908            </summary>
 909            <param name="a"></param>
 910            <returns></returns>
 911        </member>
 912        <member name="M:Iesi.Collections.Generic.ImmutableSet`1.NonGenericExclusiveOr(Iesi.Collections.ISet)">
 913            <summary>
 914            Performs ExclusiveOr when called trhough non-generic ISet interface
 915            </summary>
 916            <param name="a"></param>
 917            <returns></returns>
 918        </member>
 919        <member name="P:Iesi.Collections.Generic.ImmutableSet`1.IsEmpty">
 920            <summary>
 921            Returns <see langword="true" /> if this set contains no elements.
 922            </summary>
 923        </member>
 924        <member name="P:Iesi.Collections.Generic.ImmutableSet`1.Count">
 925            <summary>
 926            The number of elements contained in this collection.
 927            </summary>
 928        </member>
 929        <member name="P:Iesi.Collections.Generic.ImmutableSet`1.IsSynchronized">
 930            <summary>
 931            Returns an object that can be used to synchronize use of the <c>Set</c> across threads.
 932            </summary>
 933        </member>
 934        <member name="P:Iesi.Collections.Generic.ImmutableSet`1.SyncRoot">
 935            <summary>
 936            Returns an object that can be used to synchronize the <c>Set</c> between threads.
 937            </summary>
 938        </member>
 939        <member name="P:Iesi.Collections.Generic.ImmutableSet`1.IsReadOnly">
 940            <summary>
 941            Indicates that the given instance is read-only
 942            </summary>
 943        </member>
 944        <member name="T:Iesi.Collections.Generic.OrderedSet`1">
 945            <summary>
 946            Implements an ordered <c>Set</c> based on a dictionary.
 947            </summary>
 948        </member>
 949        <member name="M:Iesi.Collections.Generic.OrderedSet`1.#ctor">
 950            <summary>
 951            Initializes a new instance of the <see cref="T:Iesi.Collections.Generic.OrderedSet`1"/> class.
 952            </summary>
 953        </member>
 954        <member name="M:Iesi.Collections.Generic.OrderedSet`1.#ctor(System.Collections.Generic.ICollection{`0})">
 955            <summary>
 956            Initializes a new instance of the <see cref="T:Iesi.Collections.Generic.OrderedSet`1"/> class.
 957            </summary>
 958            <param name="initialValues">A collection of elements that defines the initial set contents.</param>
 959        </member>
 960        <member name="T:Iesi.Collections.Generic.SortedSet`1">
 961            <summary>
 962            Implements a <c>Set</c> based on a sorted tree.  This gives good performance for operations on very
 963            large data-sets, though not as good - asymptotically - as a <c>HashedSet</c>.  However, iteration
 964            occurs in order.  Elements that you put into this type of collection must implement <c>IComparable</c>,
 965            and they must actually be comparable.  You can't mix <c>string</c> and <c>int</c> values, for example.
 966            </summary>
 967        </member>
 968        <member name="M:Iesi.Collections.Generic.SortedSet`1.#ctor">
 969            <summary>
 970            Creates a new set instance based on a sorted tree.
 971            </summary>
 972        </member>
 973        <member name="M:Iesi.Collections.Generic.SortedSet`1.#ctor(System.Collections.Generic.IComparer{`0})">
 974            <summary>
 975            Creates a new set instance based on a sorted tree.
 976            </summary>
 977            <param name="comparer">The <see cref="T:System.Collections.Generic.IComparer`1"/> to use for sorting.</param>
 978        </member>
 979        <member name="M:Iesi.Collections.Generic.SortedSet`1.#ctor(System.Collections.Generic.ICollection{`0})">
 980            <summary>
 981            Creates a new set instance based on a sorted tree and
 982            initializes it based on a collection of elements.
 983            </summary>
 984            <param name="initialValues">A collection of elements that defines the initial set contents.</param>
 985        </member>
 986        <member name="M:Iesi.Collections.Generic.SortedSet`1.#ctor(System.Collections.ICollection)">
 987            <summary>
 988            Creates a new set instance based on a sorted tree and
 989            initializes it based on a collection of elements.
 990            </summary>
 991            <param name="initialValues">A collection of elements that defines the initial set contents.</param>
 992        </member>
 993        <member name="M:Iesi.Collections.Generic.SortedSet`1.#ctor(System.Collections.Generic.ICollection{`0},System.Collections.Generic.IComparer{`0})">
 994            <summary>
 995            Creates a new set instance based on a sorted tree and
 996            initializes it based on a collection of elements.
 997            </summary>
 998            <param name="initialValues">A collection of elements that defines the initial set contents.</param>
 999            <param name="comparer">The <see cref="T:System.Collections.Generic.IComparer`1"/> to use for sorting.</param>
1000        </member>
1001        <member name="T:Iesi.Collections.Generic.SynchronizedSet`1">
1002            <summary>
1003            <p>Implements a thread-safe <c>Set</c> wrapper.  The implementation is extremely conservative, 
1004            serializing critical sections to prevent possible deadlocks, and locking on everything.
1005            The one exception is for enumeration, which is inherently not thread-safe.  For this, you
1006            have to <c>lock</c> the <c>SyncRoot</c> object for the duration of the enumeration.</p>
1007            </summary>
1008        </member>
1009        <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.#ctor(Iesi.Collections.Generic.ISet{`0})">
1010            <summary>
1011            Constructs a thread-safe <c>Set</c> wrapper.
1012            </summary>
1013            <param name="basisSet">The <c>Set</c> object that this object will wrap.</param>
1014        </member>
1015        <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Add(`0)">
1016            <summary>
1017            Adds the specified element to this set if it is not already present.
1018            </summary>
1019            <param name="o">The object to add to the set.</param>
1020            <returns><see langword="true" /> is the object was added, <see langword="false" /> if it was already present.</returns>
1021        </member>
1022        <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.AddAll(System.Collections.Generic.ICollection{`0})">
1023            <summary>
1024            Adds all the elements in the specified collection to the set if they are not already present.
1025            </summary>
1026            <param name="c">A collection of objects to add to the set.</param>
1027            <returns><see langword="true" /> is the set changed as a result of this operation, <see langword="false" /> if not.</returns>
1028        </member>
1029        <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Clear">
1030            <summary>
1031            Removes all objects from the set.
1032            </summary>
1033        </member>
1034        <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Contains(`0)">
1035            <summary>
1036            Returns <see langword="true" /> if this set contains the specified element.
1037            </summary>
1038            <param name="o">The element to look for.</param>
1039            <returns><see langword="true" /> if this set contains the specified element, <see langword="false" /> otherwise.</returns>
1040        </member>
1041        <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.ContainsAll(System.Collections.Generic.ICollection{`0})">
1042            <summary>
1043            Returns <see langword="true" /> if the set contains all the elements in the specified collection.
1044            </summary>
1045            <param name="c">A collection of objects.</param>
1046            <returns><see langword="true" /> if the set contains all the elements in the specified collection, <see langword="false" /> otherwise.</returns>
1047        </member>
1048        <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Remove(`0)">
1049            <summary>
1050            Removes the specified element from the set.
1051            </summary>
1052            <param name="o">The element to be removed.</param>
1053            <returns><see langword="true" /> if the set contained the specified element, <see langword="false" /> otherwise.</returns>
1054        </member>
1055        <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.RemoveAll(System.Collections.Generic.ICollection{`0})">
1056            <summary>
1057            Remove all the specified elements from this set, if they exist in this set.
1058            </summary>
1059            <param name="c">A collection of elements to remove.</param>
1060            <returns><see langword="true" /> if the set was modified as a result of this operation.</returns>
1061        </member>
1062        <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.RetainAll(System.Collections.Generic.ICollection{`0})">
1063            <summary>
1064            Retains only the elements in this set that are contained in the specified collection.
1065            </summary>
1066            <param name="c">Collection that defines the set of elements to be retained.</param>
1067            <returns><see langword="true" /> if this set changed as a result of this operation.</returns>
1068        </member>
1069        <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.CopyTo(`0[],System.Int32)">
1070            <summary>
1071            Copies the elements in the <c>Set</c> to an array.  The type of array needs
1072            to be compatible with the objects in the <c>Set</c>, obviously.
1073            </summary>
1074            <param name="array">An array that will be the target of the copy operation.</param>
1075            <param name="index">The zero-based index where copying will start.</param>
1076        </member>
1077        <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.GetEnumerator">
1078            <summary>
1079            Enumeration is, by definition, not thread-safe.  Use a <c>lock</c> on the <c>SyncRoot</c> 
1080            to synchronize the entire enumeration process.
1081            </summary>
1082            <returns></returns>
1083        </member>
1084        <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.Clone">
1085            <summary>
1086            Returns a clone of the <c>Set</c> instance.  
1087            </summary>
1088            <returns>A clone of this object.</returns>
1089        </member>
1090        <member name="M:Iesi.Collections.Generic.SynchronizedSet`1.NonGenericCopyTo(System.Array,System.Int32)">
1091            <summary>
1092            Performs CopyTo when called trhough non-generic ISet (ICollection) interface
1093            </summary>
1094            <param name="array"></param>
1095            <param name="index"></param>
1096        </member>
1097        <member name="P:Iesi.Collections.Generic.SynchronizedSet`1.IsEmpty">
1098            <summary>
1099            Returns <see langword="true" /> if this set contains no elements.
1100            </summary>
1101        </member>
1102        <member name="P:Iesi.Collections.Generic.SynchronizedSet`1.Count">
1103            <summary>
1104            The number of elements contained in this collection.
1105            </summary>
1106        </member>
1107        <member name="P:Iesi.Collections.Generic.SynchronizedSet`1.IsSynchronized">
1108            <summary>
1109            Returns <see langword="true" />, indicating that this object is thread-safe.  The exception to this
1110            is enumeration, which is inherently not thread-safe.  Use the <c>SyncRoot</c> object to
1111            lock this object for the entire duration of the enumeration.
1112            </summary>
1113        </member>
1114        <member name="P:Iesi.Collections.Generic.SynchronizedSet`1.SyncRoot">
1115            <summary>
1116            Returns an object that can be used to synchronize the <c>Set</c> between threads.
1117            </summary>
1118        </member>
1119        <member name="P:Iesi.Collections.Generic.SynchronizedSet`1.IsReadOnly">
1120            <summary>
1121            Indicates whether given instace is read-only or not
1122            </summary>
1123        </member>
1124        <member name="T:Iesi.Collections.DictionarySet">
1125             <summary>
1126             <p><c>DictionarySet</c> is an abstract class that supports the creation of new <c>Set</c>
1127             types where the underlying data store is an <c>IDictionary</c> instance.</p> 
1128              
1129             <p>You can use any object that implements the <c>IDictionary</c> interface to hold set data.
1130             You can define your own, or you can use one of the objects provided in the Framework.   
1131             The type of <c>IDictionary</c> you choose will affect both the performance and the behavior
1132             of the <c>Set</c> using it. </p>
1133            
1134             <p>To make a <c>Set</c> typed based on your own <c>IDictionary</c>, simply derive a
1135             new class with a constructor that takes no parameters.  Some <c>Set</c> implmentations
1136             cannot be defined with a default constructor.  If this is the case for your class, 
1137             you will need to override <c>Clone()</c> as well.</p>
1138            
1139             <p>It is also standard practice that at least one of your constructors takes an <c>ICollection</c> or 
1140             an <c>ISet</c> as an argument.</p>
1141             </summary>
1142        </member>
1143        <member name="T:Iesi.Collections.Set">
1144            <summary>A collection that contains no duplicate elements.</summary>
1145            <remarks>
1146            <para>
1147            This class models the mathematical set abstraction, and is the base class for all
1148            other set implementations. The order of elements in a set is dependant on
1149            (a) the data-structure implementation, and (b) the implementation of the various
1150            methods, and thus is not guaranteed.
1151            </para>
1152            <para>
1153            None of the <see cref="T:Iesi.Collections.ISet"/> implementations in this library are guranteed to be thread-safe
1154            in any way unless wrapped in a <see cref="T:Iesi.Collections.SynchronizedSet"/>.
1155            </para>
1156             <para>
1157            The following table summarizes the binary operators that are supported by the <see cref="T:Iesi.Collections.ISet"/>
1158            type.
1159            </para>
1160            <list type="table">
1161            	<listheader>
1162            		<term>Operation</term>
1163            		<term>Description</term>
1164            		<term>Method</term>
1165            		<term>Operator</term>
1166            	</listheader>
1167            	<item>
1168            		<term>Union (OR)</term>
1169            		<term>Element included in result if it exists in either <c>A</c> OR <c>B</c>.</term>
1170            		<term><c>Union()</c></term>
1171            		<term><c>|</c></term>
1172            	</item>
1173            	<item>
1174            		<term>Intersection (AND)</term>
1175            		<term>Element included in result if it exists in both <c>A</c> AND <c>B</c>.</term>
1176            		<term><c>InterSect()</c></term>
1177            		<term><c>&amp;</c></term>
1178            	</item>
1179            	<item>
1180            		<term>Exclusive Or (XOR)</term>
1181            		<term>Element included in result if it exists in one, but not both, of <c>A</c> and <c>B</c>.</term>
1182            		<term><c>ExclusiveOr()</c></term>
1183            		<term><c>^</c></term>
1184            	</item>
1185            	<item>
1186            		<term>Minus (n/a)</term>
1187            		<term>Take all the elements in <c>A</c>.  Now, if any of them exist in <c>B</c>, remove
1188            		them.  Note that unlike the other operators, <c>A - B</c> is not the same as <c>B - A</c>.</term>
1189            		<term><c>Minus()</c></term>
1190            		<term><c>-</c></term>
1191            	</item>
1192            </list>
1193            </remarks>
1194        </member>
1195        <member name="M:Iesi.Collections.Set.Union(Iesi.Collections.ISet)">
1196            <summary>
1197            Performs a "union" of the two sets, where all the elements
1198            in both sets are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
1199            Neither this set nor the input set are modified during the operation.  The return value
1200            is a clone of this set with the extra elements added in.
1201            </summary>
1202            <param name="a">A collection of elements.</param>
1203            <returns>A new <see cref="T:Iesi.Collections.ISet"/> instance containing the union of this instance with the specified collection.
1204            Neither of the input objects is modified by the union.</returns>
1205        </member>
1206        <member name="M:Iesi.Collections.Set.Union(Iesi.Collections.ISet,Iesi.Collections.ISet)">
1207            <summary>
1208            Performs a "union" of two sets, where all the elements
1209            in both are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
1210            The return value is a clone of one of the sets (<c>a</c> if it is not <see langword="null" />) with elements of the other set
1211            added in.  Neither of the input sets is modified by the operation.
1212            </summary>
1213            <param name="a">A set of elements.</param>
1214            <param name="b">A set of elements.</param>
1215            <returns>A set containing the union of the input sets.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
1216        </member>
1217        <member name="M:Iesi.Collections.Set.op_BitwiseOr(Iesi.Collections.Set,Iesi.Collections.Set)">
1218            <summary>
1219            Performs a "union" of two sets, where all the elements
1220            in both are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
1221            The return value is a clone of one of the sets (<c>a</c> if it is not <see langword="null" />) with elements of the other set
1222            added in.  Neither of the input sets is modified by the operation.
1223            </summary>
1224            <param name="a">A set of elements.</param>
1225            <param name="b">A set of elements.</param>
1226            <returns>A set containing the union of the input sets.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
1227        </member>
1228        <member name="M:Iesi.Collections.Set.Intersect(Iesi.Collections.ISet)">
1229            <summary>
1230            Performs an "intersection" of the two sets, where only the elements
1231            that are present in both sets remain.  That is, the element is included if it exists in
1232            both sets.  The <c>Intersect()</c> operation does not modify the input sets.  It returns
1233            a <c>Clone()</c> of this set with the appropriate elements removed.
1234            </summary>
1235            <param name="a">A set of elements.</param>
1236            <returns>The intersection of this set with <c>a</c>.</returns>
1237        </member>
1238        <member name="M:Iesi.Collections.Set.Intersect(Iesi.Collections.ISet,Iesi.Collections.ISet)">
1239            <summary>
1240            Performs an "intersection" of the two sets, where only the elements
1241            that are present in both sets remain.  That is, the element is included only if it exists in
1242            both <c>a</c> and <c>b</c>.  Neither input object is modified by the operation.
1243            The result object is a <c>Clone()</c> of one of the input objects (<c>a</c> if it is not <see langword="null" />) containing the
1244            elements from the intersect operation. 
1245            </summary>
1246            <param name="a">A set of elements.</param>
1247            <param name="b">A set of elements.</param>
1248            <returns>The intersection of the two input sets.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
1249        </member>
1250        <member name="M:Iesi.Collections.Set.op_BitwiseAnd(Iesi.Collections.Set,Iesi.Collections.Set)">
1251            <summary>
1252            Performs an "intersection" of the two sets, where only the elements
1253            that are present in both sets remain.  That is, the element is included only if it exists in
1254            both <c>a</c> and <c>b</c>.  Neither input object is modified by the operation.
1255            The result object is a <c>Clone()</c> of one of the input objects (<c>a</c> if it is not <see langword="null" />) containing the
1256            elements from the intersect operation. 
1257            </summary>
1258            <param name="a">A set of elements.</param>
1259            <param name="b">A set of elements.</param>
1260            <returns>The intersection of the two input sets.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
1261        </member>
1262        <member name="M:Iesi.Collections.Set.Minus(Iesi.Collections.ISet)">
1263            <summary>
1264            Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
1265            the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
1266            The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
1267            of this <c>Set</c> containing the elements from the operation.
1268            </summary>
1269            <param name="a">A set of elements.</param>
1270            <returns>A set containing the elements from this set with the elements in <c>a</c> removed.</returns>
1271        </member>
1272        <member name="M:Iesi.Collections.Set.Minus(Iesi.Collections.ISet,Iesi.Collections.ISet)">
1273            <summary>
1274            Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
1275            the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
1276            The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
1277            of set <c>a</c> containing the elements from the operation. 
1278            </summary>
1279            <param name="a">A set of elements.</param>
1280            <param name="b">A set of elements.</param>
1281            <returns>A set containing <c>A - B</c> elements.  <see langword="null" /> if <c>a</c> is <see langword="null" />.</returns>
1282        </member>
1283        <member name="M:Iesi.Collections.Set.op_Subtraction(Iesi.Collections.Set,Iesi.Collections.Set)">
1284            <summary>
1285            Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
1286            the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
1287            The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
1288            of set <c>a</c> containing the elements from the operation. 
1289            </summary>
1290            <param name="a">A set of elements.</param>
1291            <param name="b">A set of elements.</param>
1292            <returns>A set containing <c>A - B</c> elements.  <see langword="null" /> if <c>a</c> is <see langword="null" />.</returns>
1293        </member>
1294        <member name="M:Iesi.Collections.Set.ExclusiveOr(Iesi.Collections.ISet)">
1295            <summary>
1296            Performs an "exclusive-or" of the two sets, keeping only the elements that
1297            are in one of the sets, but not in both.  The original sets are not modified
1298            during this operation.  The result set is a clone of this set containing
1299            the elements from the exclusive-or operation.
1300            </summary>
1301            <param name="a">A set of elements.</param>
1302            <returns>A set containing the result of <c>a ^ b</c>.</returns>
1303        </member>
1304        <member name="M:Iesi.Collections.Set.ExclusiveOr(Iesi.Collections.ISet,Iesi.Collections.ISet)">
1305            <summary>
1306            Performs an "exclusive-or" of the two sets, keeping only the elements that
1307            are in one of the sets, but not in both.  The original sets are not modified
1308            during this operation.  The result set is a clone of one of the sets
1309            (<c>a</c> if it is not <see langword="null" />) containing
1310            the elements from the exclusive-or operation.
1311            </summary>
1312            <param name="a">A set of elements.</param>
1313            <param name="b">A set of elements.</param>
1314            <returns>A set containing the result of <c>a ^ b</c>.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
1315        </member>
1316        <member name="M:Iesi.Collections.Set.op_ExclusiveOr(Iesi.Collections.Set,Iesi.Collections.Set)">
1317            <summary>
1318            Performs an "exclusive-or" of the two sets, keeping only the elements that
1319            are in one of the sets, but not in both.  The original sets are not modified
1320            during this operation.  The result set is a clone of one of the sets
1321            (<c>a</c> if it is not <see langword="null" />) containing
1322            the elements from the exclusive-or operation.
1323            </summary>
1324            <param name="a">A set of elements.</param>
1325            <param name="b">A set of elements.</param>
1326            <returns>A set containing the result of <c>a ^ b</c>.  <see langword="null" /> if both sets are <see langword="null" />.</returns>
1327        </member>
1328        <member name="M:Iesi.Collections.Set.Add(System.Object)">
1329            <summary>
1330            Adds the specified element to this set if it is not already present.
1331            </summary>
1332            <param name="o">The object to add to the set.</param>
1333            <returns><see langword="true" /> is the object was added, <see langword="false" /> if it was already present.</returns>
1334        </member>
1335        <member name="M:Iesi.Collections.Set.AddAll(System.Collections.ICollection)">
1336            <summary>
1337            Adds all the elements in the specified collection to the set if they are not already present.
1338            </summary>
1339            <param name="c">A collection of objects to add to the set.</param>
1340            <returns><see langword="true" /> is the set changed as a result of this operation, <see langword="false" /> if not.</returns>
1341        </member>
1342        <member name="M:Iesi.Collections.Set.Clear">
1343            <summary>
1344            Removes all objects from the set.
1345            </summary>
1346        </member>
1347        <member name="M:Iesi.Collections.Set.Contains(System.Object)">
1348            <summary>
1349            Returns <see langword="true" /> if this set contains the specified element.
1350            </summary>
1351            <param name="o">The element to look for.</param>
1352            <returns><see langword="true" /> if this set contains the specified element, <see langword="false" /> otherwise.</returns>
1353        </member>
1354        <member name="M:Iesi.Collections.Set.ContainsAll(System.Collections.ICollection)">
1355            <summary>
1356            Returns <see langword="true" /> if the set contains all the elements in the specified collection.
1357            </summary>
1358            <param name="c">A collection of objects.</param>
1359            <returns><see langword="true" /> if the set contains all the elements in the specified collection, <see langword="false" /> otherwise.</returns>
1360        </member>
1361        <member name="M:Iesi.Collections.Set.Remove(System.Object)">
1362            <summary>
1363            Removes the specified element from the set.
1364            </summary>
1365            <param name="o">The element to be removed.</param>
1366            <returns><see langword="true" /> if the set contained the specified element, <see langword="false" /> otherwise.</returns>
1367        </member>
1368        <member name="M:Iesi.Collections.Set.RemoveAll(System.Collections.ICollection)">
1369            <summary>
1370            Remove all the specified elements from this set, if they exist in this set.
1371            </summary>
1372            <param name="c">A collection of elements to remove.</param>
1373            <returns><see langword="true" /> if the set was modified as a result of this operation.</returns>
1374        </member>
1375        <member name="M:Iesi.Collections.Set.RetainAll(System.Collections.ICollection)">
1376            <summary>
1377            Retains only the elements in this set that are contained in the specified collection.
1378            </summary>
1379            <param name="c">Collection that defines the set of elements to be retained.</param>
1380            <returns><see langword="true" /> if this set changed as a result of this operation.</returns>
1381        </member>
1382        <member name="M:Iesi.Collections.Set.Clone">
1383            <summary>
1384            Returns a clone of the set instance.  This will work for derived set
1385            classes if the derived class implements a constructor that takes no arguments.
1386            </summary>
1387            <returns>A clone of this object.</returns>
1388        </member>
1389        <member name="M:Iesi.Collections.Set.CopyTo(System.Array,System.Int32)">
1390            <summary>
1391            Copies the elements in the set to an array.  The type of array needs
1392            to be compatible with the objects in the set, obviously.
1393            </summary>
1394            <param name="array">An array that will be the target of the copy operation.</param>
1395            <param name="index">The zero-based index where copying will start.</param>
1396        </member>
1397        <member name="M:Iesi.Collections.Set.GetEnumerator">
1398            <summary>
1399            Returns an enumerator that iterates through the set.
1400            </summary>
1401            <returns>
1402            An <see cref="T:System.Collections.IEnumerator" /> object that can be used to iterate through the set.
1403            </returns>
1404        </member>
1405        <member name="P:Iesi.Collections.Set.IsEmpty">
1406            <summary>
1407            Returns <see langword="true" /> if this set contains no elements.
1408            </summary>
1409        </member>
1410        <member name="P:Iesi.Collections.Set.Count">
1411            <summary>
1412            The number of elements currently contained in this collection.
1413            </summary>
1414        </member>
1415        <member name="P:Iesi.Collections.Set.IsSynchronized">
1416            <summary>
1417            Returns <see langword="true"/> if the set is synchronized across threads.  Note that
1418            enumeration is inherently not thread-safe.  Use the <see cref="P:Iesi.Collections.Set.SyncRoot"/> to lock the
1419            object during enumeration.
1420            </summary>
1421        </member>
1422        <member name="P:Iesi.Collections.Set.SyncRoot">
1423            <summary>
1424            An object that can be used to synchronize this collection to make it thread-safe.
1425            When implementing this, if your object uses a base object, like an <see cref="T:System.Collections.IDictionary"/>,
1426            or anything that has a <see cref="P:Iesi.Collections.Set.SyncRoot"/>, return that object instead
1427            of <see langword="this"/>.
1428            </summary>
1429        </member>
1430        <member name="F:Iesi.Collections.DictionarySet.InternalDictionary">
1431            <summary>
1432            Provides the storage for elements in the <c>Set</c>, stored as the key-set
1433            of the <c>IDictionary</c> object.  Set this object in the constructor
1434            if you create your own <c>Set</c> class.  
1435            </summary>
1436        </member>
1437        <member name="M:Iesi.Collections.DictionarySet.Add(System.Object)">
1438            <summary>
1439            Adds the specified element to this set if it is not already present.
1440            </summary>
1441            <param name="o">The object to add to the set.</param>
1442            <returns><see langword="true" /> is the object was added, <see langword="false" /> if it was already present.</returns>
1443        </member>
1444        <member name="M:Iesi.Collections.DictionarySet.AddAll(System.Collections.ICollection)">
1445            <summary>
1446            Adds all the elements in the specified collection to the set if they are not already present.
1447            </summary>
1448            <param name="c">A collection of objects to add to the set.</param>
1449            <returns><see langword="true" /> is the set changed as a result of this operation, <see langword="false" /> if not.</returns>
1450        </member>
1451        <member name="M:Iesi.Collections.DictionarySet.Clear">
1452            <summary>
1453            Removes all objects from the set.
1454            </summary>
1455        </member>
1456        <member name="M:Iesi.Collections.DictionarySet.Contains(System.Object)">
1457            <summary>
1458            Returns <see langword="true" /> if this set contains the specified element.
1459            </summary>
1460            <param name="o">The element to look for.</param>
1461            <returns><see langword="true" /> if this set contains the specified element, <see langword="false" /> otherwise.</returns>
1462        </member>
1463        <member name="M:Iesi.Collections.DictionarySet.ContainsAll(System.Collections.ICollection)">
1464            <summary>
1465            Returns <see langword="true" /> if the set contains all the elements in the specified collection.
1466            </summary>
1467            <param name="c">A collection of objects.</param>
1468            <returns><see langword="true" /> if the set contains all the elements in the specified collection, <see langword="false" /> otherwise.</returns>
1469        </member>
1470        <member name="M:Iesi.Collections.DictionarySet.Remove(System.Object)">
1471            <summary>
1472            Removes the specified element from the set.
1473            </summary>
1474            <param name="o">The element to be removed.</param>
1475            <returns><see langword="true" /> if the set contained the specified element, <see langword="false" /> otherwise.</returns>
1476        </member>
1477        <member name="M:Iesi.Collections.DictionarySet.RemoveAll(System.Collections.ICollection)">
1478            <summary>
1479            Remove all the specified elements from this set, if they exist in this set.
1480            </summary>
1481            <param name="c">A collection of elements to remove.</param>
1482            <returns><see langword="true" /> if the set was modified as a result of this operation.</returns>
1483        </member>
1484        <member name="M:Iesi.Collections.DictionarySet.RetainAll(System.Collections.ICollection)">
1485            <summary>
1486            Retains only the elements in this set that are contained in the specified collection.
1487            </summary>
1488            <param name="c">Collection that defines the set of elements to be retained.</param>
1489            <returns><see langword="true" /> if this set changed as a result of this operation.</returns>
1490        </member>
1491        <member name="M:Iesi.Collections.DictionarySet.CopyTo(System.Array,System.Int32)">
1492            <summary>
1493            Copies the elements in the <c>Set</c> to an array.  The type of array needs
1494            to be compatible with the objects in the <c>Set</c>, obviously.
1495            </summary>
1496            <param name="array">An array that will be the target of the copy operation.</param>
1497            <param name="index">The zero-based index where copying will start.</param>
1498        </member>
1499        <member name="M:Iesi.Collections.DictionarySet.GetEnumerator">
1500            <summary>
1501            Gets an enumerator for the elements in the <c>Set</c>.
1502            </summary>
1503            <returns>An <c>IEnumerator</c> over the elements in the <c>Set</c>.</returns>
1504        </member>
1505        <member name="P:Iesi.Collections.DictionarySet.Placeholder">
1506            <summary>
1507            The placeholder object used as the value for the <c>IDictionary</c> instance.
1508            </summary>
1509            <remarks>
1510            There is a single instance of this object globally, used for all <c>Sets</c>.
1511            </remarks>
1512        </member>
1513        <member name="P:Iesi.Collections.DictionarySet.IsEmpty">
1514            <summary>
1515            Returns <see langword="true" /> if this set contains no elements.
1516            </summary>
1517        </member>
1518        <member name="P:Iesi.Collections.DictionarySet.Count">
1519            <summary>
1520            The number of elements contained in this collection.
1521            </summary>
1522        </member>
1523        <member name="P:Iesi.Collections.DictionarySet.IsSynchronized">
1524            <summary>
1525            None of the objects based on <c>DictionarySet</c> are synchronized.  Use the
1526            <c>SyncRoot</c> property instead.
1527            </summary>
1528        </member>
1529        <member name="P:Iesi.Collections.DictionarySet.SyncRoot">
1530            <summary>
1531            Returns an object that can be used to synchronize the <c>Set</c> between threads.
1532            </summary>
1533        </member>
1534        <member name="T:Iesi.Collections.HashedSet">
1535            <summary>
1536            Implements a <c>Set</c> based on a hash table.  This will give the best lookup, add, and remove
1537            performance for very large data-sets, but iteration will occur in no particular order.
1538            </summary>
1539        </member>
1540        <member name="M:Iesi.Collections.HashedSet.#ctor">
1541            <summary>
1542            Creates a new set instance based on a hash table.
1543            </summary>
1544        </member>
1545        <member name="M:Iesi.Collections.HashedSet.#ctor(System.Collections.ICollection)">
1546            <summary>
1547            Creates a new set instance based on a hash table and
1548            initializes it based on a collection of elements.
1549            </summary>
1550            <param name="initialValues">A collection of elements that defines the initial set contents.</param>
1551        </member>
1552        <member name="T:Iesi.Collections.HybridSet">
1553            <summary>
1554            Implements a <c>Set</c> that automatically changes from a list to a hash table
1555            when the size reaches a certain threshold.  This is good if you are unsure about
1556            whether you data-set will be tiny or huge.  Because this uses a dual implementation,
1557            iteration order is not guaranteed!
1558            </summary>
1559        </member>
1560        <member name="M:Iesi.Collections.HybridSet.#ctor">
1561            <summary>
1562            Creates a new set instance based on either a list or a hash table, depending on which 
1563            will be more efficient based on the data-set size.
1564            </summary>
1565        </member>
1566        <member name="M:Iesi.Collections.HybridSet.#ctor(System.Collections.ICollection)">
1567            <summary>
1568            Creates a new set instance based on either a list or a hash table, depending on which 
1569            will be more efficient based on the data-set size, and
1570            initializes it based on a collection of elements.
1571            </summary>
1572            <param name="initialValues">A collection of elements that defines the initial set contents.</param>
1573        </member>
1574        <member name="T:Iesi.Collections.ImmutableSet">
1575            <summary>
1576            <p>Implements an immutable (read-only) <c>Set</c> wrapper.</p>
1577            <p>Although this is advertised as immutable, it really isn't.  Anyone with access to the
1578            <c>basisSet</c> can still change the data-set.  So <c>GetHashCode()</c> is not implemented
1579            for this <c>Set</c>, as is the case for all <c>Set</c> implementations in this library.
1580            This design decision was based on the efficiency of not having to <c>Clone()</c> the 
1581            <c>basisSet</c> every time you wrap a mutable <c>Set</c>.</p>
1582            </summary>
1583        </member>
1584        <member name="M:Iesi.Collections.ImmutableSet.#ctor(Iesi.Collections.ISet)">
1585            <summary>
1586            Constructs an immutable (read-only) <c>Set</c> wrapper.
1587            </summary>
1588            <param name="basisSet">The <c>Set</c> that is wrapped.</param>
1589        </member>
1590        <member name="M:Iesi.Collections.ImmutableSet.Add(System.Object)">
1591            <summary>
1592            Adds the specified element to this set if it is not already present.
1593            </summary>
1594            <param name="o">The object to add to the set.</param>
1595            <returns><see langword="true" /> is the object was added, <see langword="false" /> if it was already present.</returns>
1596        </member>
1597        <member name="M:Iesi.Collections.ImmutableSet.AddAll(System.Collections.ICollection)">
1598            <summary>
1599            Adds all the elements in the specified collection to the set if they are not already present.
1600            </summary>
1601            <param name="c">A collection of objects to add to the set.</param>
1602            <returns><see langword="true" /> is the set changed as a result of this operation, <see langword="false" /> if not.</returns>
1603        </member>
1604        <member name="M:Iesi.Collections.ImmutableSet.Clear">
1605            <summary>
1606            Removes all objects from the set.
1607            </summary>
1608        </member>
1609        <member name="M:Iesi.Collections.ImmutableSet.Contains(System.Object)">
1610            <summary>
1611            Returns <see langword="true" /> if this set contains the specified element.
1612            </summary>
1613            <param name="o">The element to look for.</param>
1614            <returns><see langword="true" /> if this set contains the specified element, <see langword="false" /> otherwise.</returns>
1615        </member>
1616        <member name="M:Iesi.Collections.ImmutableSet.ContainsAll(System.Collections.ICollection)">
1617            <summary>
1618            Returns <see langword="true" /> if the set contains all the elements in the specified collection.
1619            </summary>
1620            <param name="c">A collection of objects.</param>
1621            <returns><see langword="true" /> if the set contains all the elements in the specified collection, <see langword="false" /> otherwise.</returns>
1622        </member>
1623        <member name="M:Iesi.Collections.ImmutableSet.Remove(System.Object)">
1624            <summary>
1625            Removes the specified element from the set.
1626            </summary>
1627            <param name="o">The element to be removed.</param>
1628            <returns><see langword="true" /> if the set contained the specified element, <see langword="false" /> otherwise.</returns>
1629        </member>
1630        <member name="M:Iesi.Collections.ImmutableSet.RemoveAll(System.Collections.ICollection)">
1631            <summary>
1632            Remove all the specified elements from this set, if they exist in this set.
1633            </summary>
1634            <param name="c">A collection of elements to remove.</param>
1635            <returns><see langword="true" /> if the set was modified as a result of this operation.</returns>
1636        </member>
1637        <member name="M:Iesi.Collections.ImmutableSet.RetainAll(System.Collections.ICollection)">
1638            <summary>
1639            Retains only the elements in this set that are contained in the specified collection.
1640            </summary>
1641            <param name="c">Collection that defines the set of elements to be retained.</param>
1642            <returns><see langword="true" /> if this set changed as a result of this operation.</returns>
1643        </member>
1644        <member name="M:Iesi.Collections.ImmutableSet.CopyTo(System.Array,System.Int32)">
1645            <summary>
1646            Copies the elements in the <c>Set</c> to an array.  The type of array needs
1647            to be compatible with the objects in the <c>Set</c>, obviously.
1648            </summary>
1649            <param name="array">An array that will be the target of the copy operation.</param>
1650            <param name="index">The zero-based index where copying will start.</param>
1651        </member>
1652        <member name="M:Iesi.Collections.ImmutableSet.GetEnumerator">
1653            <summary>
1654            Gets an enumerator for the elements in the <c>Set</c>.
1655            </summary>
1656            <returns>An <c>IEnumerator</c> over the elements in the <c>Set</c>.</returns>
1657        </member>
1658        <member name="M:Iesi.Collections.ImmutableSet.Clone">
1659            <summary>
1660            Returns a clone of the <c>Set</c> instance.  
1661            </summary>
1662            <returns>A clone of this object.</returns>
1663        </member>
1664        <member name="M:Iesi.Collections.ImmutableSet.Union(Iesi.Collections.ISet)">
1665            <summary>
1666            Performs a "union" of the two sets, where all the elements
1667            in both sets are present.  That is, the element is included if it is in either <c>a</c> or <c>b</c>.
1668            Neither this set nor the input set are modified during the operation.  The return value
1669            is a <c>Clone()</c> of this set with the extra elements added in.
1670            </summary>
1671            <param name="a">A collection of elements.</param>
1672            <returns>A new <c>Set</c> containing the union of this <c>Set</c> with the specified collection.
1673            Neither of the input objects is modified by the union.</returns>
1674        </member>
1675        <member name="M:Iesi.Collections.ImmutableSet.Intersect(Iesi.Collections.ISet)">
1676            <summary>
1677            Performs an "intersection" of the two sets, where only the elements
1678            that are present in both sets remain.  That is, the element is included if it exists in
1679            both sets.  The <c>Intersect()</c> operation does not modify the input sets.  It returns
1680            a <c>Clone()</c> of this set with the appropriate elements removed.
1681            </summary>
1682            <param name="a">A set of elements.</param>
1683            <returns>The intersection of this set with <c>a</c>.</returns>
1684        </member>
1685        <member name="M:Iesi.Collections.ImmutableSet.Minus(Iesi.Collections.ISet)">
1686            <summary>
1687            Performs a "minus" of set <c>b</c> from set <c>a</c>.  This returns a set of all
1688            the elements in set <c>a</c>, removing the elements that are also in set <c>b</c>.
1689            The original sets are not modified during this operation.  The result set is a <c>Clone()</c>
1690            of this <c>Set</c> containing the elements from the operation.
1691            </summary>
1692            <param name="a">A set of elements.</param>
1693            <returns>A set containing the elements from this set with the elements in <c>a</c> removed.</returns>
1694        </member>
1695        <member name="M:Iesi.Collections.ImmutableSet.ExclusiveOr(Iesi.Collections.ISet)">
1696            <summary>
1697            Performs an "exclusive-or" of the two sets, keeping only the elements that
1698            are in one of the sets, but not in both.  The original sets are not modified
1699            during this operation.  The result set is a <c>Clone()</c> of this set containing
1700            the elements from the exclusive-or operation.
1701            </summary>
1702            <param name="a">A set of elements.</param>
1703            <returns>A set containing the result of <c>a ^ b</c>.</returns>
1704        </member>
1705        <member name="P:Iesi.Collections.ImmutableSet.IsEmpty">
1706            <summary>
1707            Returns <see langword="true" /> if this set contains no elements.
1708            </summary>
1709        </member>
1710        <member name="P:Iesi.Collections.ImmutableSet.Count">
1711            <summary>
1712            The number of elements contained in this collection.
1713            </summary>
1714        </member>
1715        <member name="P:Iesi.Collections.ImmutableSet.IsSynchronized">
1716            <summary>
1717            Returns an object that can be used to synchronize use of the <c>Set</c> across threads.
1718            </summary>
1719        </member>
1720        <member name="P:Iesi.Collections.ImmutableSet.SyncRoot">
1721            <summary>
1722            Returns an object that can be used to synchronize the <c>Set</c> between threads.
1723            </summary>
1724        </member>
1725        <member name="T:Iesi.Collections.ListSet">
1726            <summary>
1727            Implements a <c>Set</c> based on a list.  Performance is much better for very small lists 
1728            than either <c>HashedSet</c> or <c>SortedSet</c>.  However, performance degrades rapidly as 
1729            the data-set gets bigger.  Use a <c>HybridSet</c> instead if you are not sure your data-set
1730            will always remain very small.  Iteration produces elements in the order they were added.
1731            However, element order is not guaranteed to be maintained by the various <c>Set</c>
1732            mathematical operators.  
1733            </summary>
1734        </member>
1735        <member name="M:Iesi.Collections.ListSet.#ctor">
1736            <summary>
1737            Creates a new set instance based on a list.
1738            </summary>
1739        </member>
1740        <member name="M:Iesi.Collections.ListSet.#ctor(System.Collections.ICollection)">
1741            <summary>
1742            Creates a new set instance based on a list and
1743            initializes it based on a collection of elements.
1744            </summary>
1745            <param name="initialValues">A collection of elements that defines the initial set contents.</param>
1746        </member>
1747        <member name="T:Iesi.Collections.SortedSet">
1748            <summary>
1749            Implements a set based on a sorted tree.  This gives good performance for operations on very
1750            large data-sets, though not as good - asymptotically - as a <see cref="T:Iesi.Collections.HashedSet"/>.
1751            However, iteration occurs in order.  Elements that you put into this type of collection must
1752            implement <see cref="T:System.IComparable"/>, and they must actually be comparable.  You can't mix
1753            <see cref="T:System.String"/> and <see cref="T:System.Int32"/> values, for example.
1754            </summary>
1755        </member>
1756        <member name="M:Iesi.Collections.SortedSet.#ctor">
1757            <summary>
1758            Creates a new set instance based on a sorted tree.
1759            </summary>
1760        </member>
1761        <member name="M:Iesi.Collections.SortedSet.#ctor(System.Collections.IComparer)">
1762            <summary>
1763            Creates a new set instance based on a sorted tree.
1764            </summary>
1765            <param name="comparer">The <see cref="T:System.Collections.IComparer"/> to use for sorting.</param>
1766        </member>
1767        <member name="M:Iesi.Collections.SortedSet.#ctor(System.Collections.ICollection)">
1768            <summary>
1769            Creates a new set instance based on a sorted tree and
1770            initializes it based on a collection of elements.
1771            </summary>
1772            <param name="initialValues">A collection of elements that defines the initial set contents.</param>
1773        </member>
1774        <member name="M:Iesi.Collections.SortedSet.#ctor(System.Collections.ICollection,System.Collections.IComparer)">
1775            <summary>
1776            Creates a new set instance based on a sorted tree and
1777            initializes it based on a collection of elements.
1778            </summary>
1779            <param name="initialValues">A collection of elements that defines the initial set contents.</param>
1780            <param name="comparer">The <see cref="T:System.Collections.IComparer"/> to use for sorting.</param>
1781        </member>
1782        <member name="T:Iesi.Collections.SynchronizedSet">
1783            <summary>
1784            Implements a thread-safe <see cref="T:Iesi.Collections.ISet"/> wrapper.
1785            </summary>
1786            <remarks>
1787            The implementation is extremely conservative, serializing critical sections
1788            to prevent possible deadlocks, and locking on everything. The one exception
1789            is for enumeration, which is inherently not thread-safe.  For this, you have
1790            to <see langword="lock"/> the <see cref="P:Iesi.Collections.SynchronizedSet.SyncRoot"/> object for the duration
1791            of the enumeration.
1792            </remarks>
1793        </member>
1794        <member name="M:Iesi.Collections.SynchronizedSet.#ctor(Iesi.Collections.ISet)">
1795            <summary>
1796            Constructs a thread-safe <see cref="T:Iesi.Collections.ISet"/> wrapper.
1797            </summary>
1798            <param name="basisSet">The <see cref="T:Iesi.Collections.ISet"/> object that this object will wrap.</param>
1799        </member>
1800        <member name="M:Iesi.Collections.SynchronizedSet.Add(System.Object)">
1801            <summary>
1802            Adds the specified element to this set if it is not already present.
1803            </summary>
1804            <param name="o">The object to add to the set.</param>
1805            <returns><see langword="true" /> is the object was added, <see langword="false" /> if it was already present.</returns>
1806        </member>
1807        <member name="M:Iesi.Collections.SynchronizedSet.AddAll(System.Collections.ICollection)">
1808            <summary>
1809            Adds all the elements in the specified collection to the set if they are not already present.
1810            </summary>
1811            <param name="c">A collection of objects to add to the set.</param>
1812            <returns><see langword="true" /> is the set changed as a result of this operation, <see langword="false" /> if not.</returns>
1813        </member>
1814        <member name="M:Iesi.Collections.SynchronizedSet.Clear">
1815            <summary>
1816            Removes all objects from the set.
1817            </summary>
1818        </member>
1819        <member name="M:Iesi.Collections.SynchronizedSet.Contains(System.Object)">
1820            <summary>
1821            Returns <see langword="true" /> if this set contains the specified element.
1822            </summary>
1823            <param name="o">The element to look for.</param>
1824            <returns><see langword="true" /> if this set contains the specified element, <see langword="false" /> otherwise.</returns>
1825        </member>
1826        <member name="M:Iesi.Collections.SynchronizedSet.ContainsAll(System.Collections.ICollection)">
1827            <summary>
1828            Returns <see langword="true" /> if the set contains all the elements in the specified collection.
1829            </summary>
1830            <param name="c">A collection of objects.</param>
1831            <returns><see langword="true" /> if the set contains all the elements in the specified collection, <see langword="false" /> otherwise.</returns>
1832        </member>
1833        <member name="M:Iesi.Collections.SynchronizedSet.Remove(System.Object)">
1834            <summary>
1835            Removes the specified element from the set.
1836            </summary>
1837            <param name="o">The element to be removed.</param>
1838            <returns><see langword="true" /> if the set contained the specified element, <see langword="false" /> otherwise.</returns>
1839        </member>
1840        <member name="M:Iesi.Collections.SynchronizedSet.RemoveAll(System.Collections.ICollection)">
1841            <summary>
1842            Remove all the specified elements from this set, if they exist in this set.
1843            </summary>
1844            <param name="c">A collection of elements to remove.</param>
1845            <returns><see langword="true" /> if the set was modified as a result of this operation.</returns>
1846        </member>
1847        <member name="M:Iesi.Collections.SynchronizedSet.RetainAll(System.Collections.ICollection)">
1848            <summary>
1849            Retains only the elements in this set that are contained in the specified collection.
1850            </summary>
1851            <param name="c">Collection that defines the set of elements to be retained.</param>
1852            <returns><see langword="true" /> if this set changed as a result of this operation.</returns>
1853        </member>
1854        <member name="M:Iesi.Collections.SynchronizedSet.CopyTo(System.Array,System.Int32)">
1855            <summary>
1856            Copies the elements in the set to an array.  The type of array needs
1857            to be compatible with the objects in the set, obviously.
1858            </summary>
1859            <param name="array">An array that will be the target of the copy operation.</param>
1860            <param name="index">The zero-based index where copying will start.</param>
1861        </member>
1862        <member name="M:Iesi.Collections.SynchronizedSet.GetEnumerator">
1863            <summary>
1864            Returns an enumerator that iterates through the set.
1865            </summary>
1866            <returns>
1867            An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the set.
1868            </returns>
1869            <remarks>
1870            Enumeration is, by definition, not thread-safe.  Use a <see langword="lock"/> on the <see cref="P:Iesi.Collections.SynchronizedSet.SyncRoot"/> 
1871            to synchronize the entire enumeration process.
1872            </remarks>
1873        </member>
1874        <member name="M:Iesi.Collections.SynchronizedSet.Clone">
1875            <summary>
1876            Returns a clone of this instance.  
1877            </summary>
1878            <returns>A clone of this object.</returns>
1879        </member>
1880        <member name="P:Iesi.Collections.SynchronizedSet.IsEmpty">
1881            <summary>
1882            Returns <see langword="true" /> if this set contains no elements.
1883            </summary>
1884        </member>
1885        <member name="P:Iesi.Collections.SynchronizedSet.Count">
1886            <summary>
1887            The number of elements contained in this collection.
1888            </summary>
1889        </member>
1890        <member name="P:Iesi.Collections.SynchronizedSet.IsSynchronized">
1891            <summary>
1892            Returns <see langword="true"/>, indicating that this object is thread-safe.  The exception to this
1893            is enumeration, which is inherently not thread-safe.  Use the <see cref="P:Iesi.Collections.SynchronizedSet.SyncRoot"/> object to
1894            lock this object for the entire duration of the enumeration.
1895            </summary>
1896        </member>
1897        <member name="P:Iesi.Collections.SynchronizedSet.SyncRoot">
1898            <summary>
1899            Returns an object that can be used to synchronize the set between threads.
1900            </summary>
1901        </member>
1902    </members>
1903</doc>