Merge branch 'master' into config-checks-ipv6
[mono.git] / mcs / class / Mono.C5 / c5.xml
index 8d4b2fb76961d5be40c7a04c5f677cb13e8ecfbb..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
-<?xml version="1.0"?>\r
-<doc>\r
-    <assembly>\r
-        <name>C5</name>\r
-    </assembly>\r
-    <members>\r
-        <member name="T:C5.EnumerationDirection">\r
-            <summary>\r
-            Direction of enumeration order relative to original collection.\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.EnumerationDirection.Forwards">\r
-            <summary>\r
-            Same direction\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.EnumerationDirection.Backwards">\r
-            <summary>\r
-            Opposite direction\r
-            </summary>\r
-        </member>\r
-        <member name="T:C5.IComparer`1">\r
-            <summary>\r
-            The type of an item comparer\r
-            <p>Implementations of this interface must asure that the method is self-consistent\r
-            and defines a sorting order on items, or state precise conditions under which this is true.</p>\r
-            <p>Implementations <b>must</b> assure that repeated calls of\r
-            the method to the same (in reference or binary identity sense) arguments \r
-            will return values with the same sign (-1, 0 or +1), or state precise conditions\r
-            under which the user \r
-            can be assured repeated calls will return the same sign.</p>\r
-            <p>Implementations of this interface must always return values from the method\r
-            and never throw exceptions.</p>\r
-            <p>This interface is identical to System.Collections.Generic.IComparer&lt;T&gt;</p>\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.IComparer`1.Compare(`0,`0)">\r
-            <summary>\r
-            Compare two items with respect to this item comparer\r
-            </summary>\r
-            <param name="a">First item</param>\r
-            <param name="b">Second item</param>\r
-            <returns>Positive if a is greater than b, 0 if they are equal, negative if a is less than b</returns>\r
-        </member>\r
-        <member name="T:C5.IntHasher">\r
-            <summary>\r
-            A hasher for int32\r
-            </summary>\r
-        </member>\r
-        <member name="T:C5.IHasher`1">\r
-            <summary>\r
-            The type of an item hasher. \r
-            <p>Implementations of this interface <b>must</b> assure that the methods are \r
-            consistent, i.e. that whenever two items i1 and i2 satisfies that Equals(i1,i2)\r
-            returns true, then GetHashCode returns the same values for i1 and i2.</p>\r
-            <p>Implementations of this interface <b>must</b> assure that repeated calls of\r
-            the methods to the same (in reference or binary identity sense) arguments \r
-            will return the same values, or state precise conditions under which the user \r
-            can be assured repeated calls will return the same values.</p>\r
-            <p>Implementations of this interface must always return values from the methods\r
-            and never throw exceptions.</p>\r
-            <p>This interface is similar in function to System.IKeyComparer&lt;T&gt;</p>\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.IHasher`1.GetHashCode(`0)">\r
-            <summary>\r
-            Get the hash code with respect to this item hasher\r
-            </summary>\r
-            <param name="item">The item</param>\r
-            <returns>The hash code</returns>\r
-        </member>\r
-        <member name="M:C5.IHasher`1.Equals(`0,`0)">\r
-            <summary>\r
-            Check if two items are equal with respect to this item hasher\r
-            </summary>\r
-            <param name="i1">first item</param>\r
-            <param name="i2">second item</param>\r
-            <returns>True if equal</returns>\r
-        </member>\r
-        <member name="M:C5.IntHasher.GetHashCode(System.Int32)">\r
-            <summary>\r
-            Get the hash code of this integer, i.e. itself\r
-            </summary>\r
-            <param name="item">The integer</param>\r
-            <returns>The same</returns>\r
-        </member>\r
-        <member name="M:C5.IntHasher.Equals(System.Int32,System.Int32)">\r
-            <summary>\r
-            Check if two integers are equal\r
-            </summary>\r
-            <param name="i1">first integer</param>\r
-            <param name="i2">second integer</param>\r
-            <returns>True if equal</returns>\r
-        </member>\r
-        <member name="T:C5.NaturalComparer`1">\r
-            <summary>\r
-            A natural generic IComparer for an IComparable&lt;T&gt; item type\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.NaturalComparer`1.Compare(`0,`0)">\r
-            <summary>\r
-            Compare two items\r
-            </summary>\r
-            <param name="a">First item</param>\r
-            <param name="b">Second item</param>\r
-            <returns>a &lt;=&gt; b</returns>\r
-        </member>\r
-        <member name="T:C5.NaturalComparerO`1">\r
-            <summary>\r
-            A natural generic IComparer for a System.IComparable item type\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.NaturalComparerO`1.Compare(`0,`0)">\r
-            <summary>\r
-            Compare two items\r
-            </summary>\r
-            <param name="a">First item</param>\r
-            <param name="b">Second item</param>\r
-            <returns>a &lt;=&gt; b</returns>\r
-        </member>\r
-        <member name="T:C5.DefaultReferenceTypeHasher`1">\r
-             <summary>\r
-             The default item hasher for a reference type. A trivial wrapper for calling \r
-             the GetHashCode and Equals methods inherited from object.\r
-            \r
-             <p>Should only be instantiated with a reference type as generic type parameter. \r
-             This is asserted at instatiation time in Debug builds.</p>\r
-             </summary>\r
-        </member>\r
-        <member name="M:C5.DefaultReferenceTypeHasher`1.GetHashCode(`0)">\r
-            <summary>\r
-            Get the hash code with respect to this item hasher\r
-            </summary>\r
-            <param name="item">The item</param>\r
-            <returns>The hash code</returns>\r
-        </member>\r
-        <member name="M:C5.DefaultReferenceTypeHasher`1.Equals(`0,`0)">\r
-            <summary>\r
-            Check if two items are equal with respect to this item hasher\r
-            </summary>\r
-            <param name="i1">first item</param>\r
-            <param name="i2">second item</param>\r
-            <returns>True if equal</returns>\r
-        </member>\r
-        <member name="T:C5.DefaultValueTypeHasher`1">\r
-             <summary>\r
-             The default item hasher for a value type. A trivial wrapper for calling \r
-             the GetHashCode and Equals methods inherited from object.\r
-            \r
-             <p>Should only be instantiated with a value type as generic type parameter. \r
-             This is asserted at instatiation time in Debug builds.</p>\r
-             <p>We cannot add the constraint "where T : struct" to get a compile time check\r
-             because we need to instantiate this class in C5.HasherBuilder.ByPrototype[T].Examine()\r
-             with a T that is only known at runtime to be a value type!</p>\r
-             </summary>\r
-        </member>\r
-        <member name="M:C5.DefaultValueTypeHasher`1.GetHashCode(`0)">\r
-            <summary>\r
-            Get the hash code with respect to this item hasher\r
-            </summary>\r
-            <param name="item">The item</param>\r
-            <returns>The hash code</returns>\r
-        </member>\r
-        <member name="M:C5.DefaultValueTypeHasher`1.Equals(`0,`0)">\r
-            <summary>\r
-            Check if two items are equal with respect to this item hasher\r
-            </summary>\r
-            <param name="i1">first item</param>\r
-            <param name="i2">second item</param>\r
-            <returns>True if equal</returns>\r
-        </member>\r
-        <member name="T:C5.EnumerableBase`1">\r
-            <summary>\r
-            A base class for implementing an IEnumerable&lt;T&gt;\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.EnumerableBase`1.GetEnumerator">\r
-            <summary>\r
-            Create an enumerator for this collection.\r
-            </summary>\r
-            <returns>The enumerator</returns>\r
-        </member>\r
-        <member name="M:C5.EnumerableBase`1.countItems(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Count the number of items in an enumerable by enumeration\r
-            </summary>\r
-            <param name="items">The enumerable to count</param>\r
-            <returns>The size of the enumerable</returns>\r
-        </member>\r
-        <member name="T:C5.CollectionValueBase`1">\r
-            <summary>\r
-            Base class for classes implementing ICollectionValue[T]\r
-            </summary>\r
-        </member>\r
-        <member name="T:C5.ICollectionValue`1">\r
-            <summary>\r
-            A generic collection that may be enumerated and can answer\r
-            efficiently how many items it contains. Like <code>IEnumerable&lt;T&gt;</code>,\r
-            this interface does not prescribe any operations to initialize or update the \r
-            collection. The main usage for this interface is to be the return type of \r
-            query operations on generic collection.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.ICollectionValue`1.CopyTo(`0[],System.Int32)">\r
-            <summary>\r
-            Copy the items of this collection to a contiguous part of an array.\r
-            </summary>\r
-            <param name="a">The array to copy to</param>\r
-            <param name="i">The index at which to copy the first item</param>\r
-        </member>\r
-        <member name="M:C5.ICollectionValue`1.ToArray">\r
-            <summary>\r
-            Create an array with the items of this collection (in the same order as an\r
-            enumerator would output them).\r
-            </summary>\r
-            <returns>The array</returns>\r
-        </member>\r
-        <member name="M:C5.ICollectionValue`1.Apply(C5.Applier{`0})">\r
-            <summary>\r
-            Apply a delegate to all items of this collection.\r
-            </summary>\r
-            <param name="a">The delegate to apply</param>\r
-        </member>\r
-        <member name="M:C5.ICollectionValue`1.Exists(C5.Filter{`0})">\r
-            <summary>\r
-            Check if there exists an item  that satisfies a\r
-            specific predicate in this collection.\r
-            </summary>\r
-            <param name="filter">A filter delegate \r
-            (<see cref="T:C5.Filter!1"/>) defining the predicate</param>\r
-            <returns>True is such an item exists</returns>\r
-        </member>\r
-        <member name="M:C5.ICollectionValue`1.All(C5.Filter{`0})">\r
-            <summary>\r
-            Check if all items in this collection satisfies a specific predicate.\r
-            </summary>\r
-            <param name="filter">A filter delegate \r
-            (<see cref="T:C5.Filter!1"/>) defining the predicate</param>\r
-            <returns>True if all items satisfies the predicate</returns>\r
-        </member>\r
-        <member name="P:C5.ICollectionValue`1.Count">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>The number of items in this collection</value>\r
-        </member>\r
-        <member name="P:C5.ICollectionValue`1.CountSpeed">\r
-            <summary>\r
-            The value is symbolic indicating the type of asymptotic complexity\r
-            in terms of the size of this collection (worst-case or amortized as\r
-            relevant).\r
-            </summary>\r
-            <value>A characterization of the speed of the \r
-            <code>Count</code> property in this collection.</value>\r
-        </member>\r
-        <member name="M:C5.CollectionValueBase`1.CopyTo(`0[],System.Int32)">\r
-            <summary>\r
-            Copy the items of this collection to part of an array.\r
-            <exception cref="T:System.ArgumentOutOfRangeException"/> if i is negative.\r
-            <exception cref="T:System.ArgumentException"/> if the array does not have room for the items.\r
-            </summary>\r
-            <param name="a">The array to copy to</param>\r
-            <param name="i">The starting index.</param>\r
-        </member>\r
-        <member name="M:C5.CollectionValueBase`1.ToArray">\r
-            <summary>\r
-            Create an array with the items of this collection (in the same order as an\r
-            enumerator would output them).\r
-            </summary>\r
-            <returns>The array</returns>\r
-        </member>\r
-        <member name="M:C5.CollectionValueBase`1.Apply(C5.Applier{`0})">\r
-            <summary>\r
-            Apply an Applier&lt;T&gt; to this enumerable\r
-            </summary>\r
-            <param name="a">The applier delegate</param>\r
-        </member>\r
-        <member name="M:C5.CollectionValueBase`1.Exists(C5.Filter{`0})">\r
-            <summary>\r
-            Check if there exists an item  that satisfies a\r
-            specific predicate in this collection.\r
-            </summary>\r
-            <param name="filter">A filter delegate \r
-            (<see cref="T:C5.Filter!1"/>) defining the predicate</param>\r
-            <returns>True is such an item exists</returns>\r
-        </member>\r
-        <member name="M:C5.CollectionValueBase`1.All(C5.Filter{`0})">\r
-            <summary>\r
-            Check if all items in this collection satisfies a specific predicate.\r
-            </summary>\r
-            <param name="filter">A filter delegate \r
-            (<see cref="T:C5.Filter!1"/>) defining the predicate</param>\r
-            <returns>True if all items satisfies the predicate</returns>\r
-        </member>\r
-        <member name="M:C5.CollectionValueBase`1.GetEnumerator">\r
-            <summary>\r
-            Create an enumerator for this collection.\r
-            </summary>\r
-            <returns>The enumerator</returns>\r
-        </member>\r
-        <member name="P:C5.CollectionValueBase`1.Count">\r
-            <summary>\r
-            The number of items in this collection.\r
-            </summary>\r
-            <value></value>\r
-        </member>\r
-        <member name="P:C5.CollectionValueBase`1.CountSpeed">\r
-            <summary>\r
-            The value is symbolic indicating the type of asymptotic complexity\r
-            in terms of the size of this collection (worst-case or amortized as\r
-            relevant).\r
-            </summary>\r
-            <value>A characterization of the speed of the \r
-            <code>Count</code> property in this collection.</value>\r
-        </member>\r
-        <member name="T:C5.CollectionBase`1">\r
-            <summary>\r
-            Base class (abstract) for ICollection implementations.\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.CollectionBase`1.isReadOnly">\r
-            <summary>\r
-            The underlying field of the ReadOnly property\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.CollectionBase`1.stamp">\r
-            <summary>\r
-            The current stamp value\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.CollectionBase`1.size">\r
-            <summary>\r
-            The number of items in the collection\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.CollectionBase`1.itemhasher">\r
-            <summary>\r
-            The item hasher of the collection\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.CollectionBase`1.checkRange(System.Int32,System.Int32)">\r
-            <summary>\r
-            Utility method for range checking.\r
-            <exception cref="T:System.ArgumentOutOfRangeException"/> if the start or count is negative\r
-            <exception cref="T:System.ArgumentException"/> if the range does not fit within collection size.\r
-            </summary>\r
-            <param name="start">start of range</param>\r
-            <param name="count">size of range</param>\r
-        </member>\r
-        <member name="M:C5.CollectionBase`1.ComputeHashCode(C5.ICollectionValue{`0},C5.IHasher{`0})">\r
-            <summary>\r
-            Compute the unsequenced hash code of a collection\r
-            </summary>\r
-            <param name="items">The collection to compute hash code for</param>\r
-            <param name="itemhasher">The item hasher</param>\r
-            <returns>The hash code</returns>\r
-        </member>\r
-        <member name="M:C5.CollectionBase`1.StaticEquals(C5.ICollection{`0},C5.ICollection{`0},C5.IHasher{`0})">\r
-            <summary>\r
-            Examine if tit and tat are equal as unsequenced collections\r
-            using the specified item hasher (assumed compatible with the two collections).\r
-            </summary>\r
-            <param name="tit">The first collection</param>\r
-            <param name="tat">The second collection</param>\r
-            <param name="itemhasher">The item hasher to use for comparison</param>\r
-            <returns>True if equal</returns>\r
-        </member>\r
-        <member name="M:C5.CollectionBase`1.unsequencedhashcode">\r
-            <summary>\r
-            Get the unsequenced collection hash code of this collection: from the cached \r
-            value if present and up to date, else (re)compute.\r
-            </summary>\r
-            <returns>The hash code</returns>\r
-        </member>\r
-        <member name="M:C5.CollectionBase`1.unsequencedequals(C5.ICollection{`0})">\r
-            <summary>\r
-            Check if the contents of that is equal to the contents of this\r
-            in the unsequenced sense. Using the item hasher of this collection.\r
-            </summary>\r
-            <param name="that">The collection to compare to.</param>\r
-            <returns>True if  equal</returns>\r
-        </member>\r
-        <member name="M:C5.CollectionBase`1.modifycheck(System.Int32)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> if this collection has been updated \r
-            since a target time\r
-            </summary>\r
-            <param name="thestamp">The stamp identifying the target time</param>\r
-        </member>\r
-        <member name="M:C5.CollectionBase`1.updatecheck">\r
-            <summary>\r
-            Check if it is valid to perform update operations, and if so increment stamp\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.CollectionBase`1.GetEnumerator">\r
-            <summary>\r
-            Create an enumerator for this collection.\r
-            </summary>\r
-            <returns>The enumerator</returns>\r
-        </member>\r
-        <member name="P:C5.CollectionBase`1.IsReadOnly">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>True if this collection is read only</value>\r
-        </member>\r
-        <member name="P:C5.CollectionBase`1.Count">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>The size of this collection</value>\r
-        </member>\r
-        <member name="P:C5.CollectionBase`1.CountSpeed">\r
-            <summary>\r
-            The value is symbolic indicating the type of asymptotic complexity\r
-            in terms of the size of this collection (worst-case or amortized as\r
-            relevant).\r
-            </summary>\r
-            <value>A characterization of the speed of the \r
-            <code>Count</code> property in this collection.</value>\r
-        </member>\r
-        <member name="P:C5.CollectionBase`1.SyncRoot">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>A distinguished object to use for locking to synchronize multithreaded access</value>\r
-        </member>\r
-        <member name="P:C5.CollectionBase`1.IsEmpty">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>True is this collection is empty</value>\r
-        </member>\r
-        <member name="T:C5.SequencedBase`1">\r
-            <summary>\r
-            Base class (abstract) for sequenced collection implementations.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.SequencedBase`1.ComputeHashCode(C5.ISequenced{`0},C5.IHasher{`0})">\r
-            <summary>\r
-            Compute the unsequenced hash code of a collection\r
-            </summary>\r
-            <param name="items">The collection to compute hash code for</param>\r
-            <param name="itemhasher">The item hasher</param>\r
-            <returns>The hash code</returns>\r
-        </member>\r
-        <member name="M:C5.SequencedBase`1.StaticEquals(C5.ISequenced{`0},C5.ISequenced{`0},C5.IHasher{`0})">\r
-            <summary>\r
-            Examine if tit and tat are equal as sequenced collections\r
-            using the specified item hasher (assumed compatible with the two collections).\r
-            </summary>\r
-            <param name="tit">The first collection</param>\r
-            <param name="tat">The second collection</param>\r
-            <param name="itemhasher">The item hasher to use for comparison</param>\r
-            <returns>True if equal</returns>\r
-        </member>\r
-        <member name="M:C5.SequencedBase`1.sequencedhashcode">\r
-            <summary>\r
-            Get the sequenced collection hash code of this collection: from the cached \r
-            value if present and up to date, else (re)compute.\r
-            </summary>\r
-            <returns>The hash code</returns>\r
-        </member>\r
-        <member name="M:C5.SequencedBase`1.sequencedequals(C5.ISequenced{`0})">\r
-            <summary>\r
-            Check if the contents of that is equal to the contents of this\r
-            in the sequenced sense. Using the item hasher of this collection.\r
-            </summary>\r
-            <param name="that">The collection to compare to.</param>\r
-            <returns>True if  equal</returns>\r
-        </member>\r
-        <member name="M:C5.SequencedBase`1.GetEnumerator">\r
-            <summary>\r
-            Create an enumerator for this collection.\r
-            </summary>\r
-            <returns>The enumerator</returns>\r
-        </member>\r
-        <member name="P:C5.SequencedBase`1.Direction">\r
-            <summary>\r
-            <code>Forwards</code> if same, else <code>Backwards</code>\r
-            </summary>\r
-            <value>The enumeration direction relative to the original collection.</value>\r
-        </member>\r
-        <member name="T:C5.ArrayBase`1">\r
-            <summary>\r
-            Base class for collection classes of dynamic array type implementations.\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.ArrayBase`1.array">\r
-            <summary>\r
-            The actual internal array container. Will be extended on demand.\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.ArrayBase`1.offset">\r
-            <summary>\r
-            The offset into the internal array container of the first item. The offset is 0 for a \r
-            base dynamic array and may be positive for an updatable view into a base dynamic array.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.ArrayBase`1.expand">\r
-            <summary>\r
-            Double the size of the internal array.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.ArrayBase`1.expand(System.Int32,System.Int32)">\r
-            <summary>\r
-            Expand the internal array container.\r
-            </summary>\r
-            <param name="newcapacity">The new size of the internal array - \r
-            will be rounded upwards to a power of 2.</param>\r
-            <param name="newsize">The (new) size of the (base) collection.</param>\r
-        </member>\r
-        <member name="M:C5.ArrayBase`1.insert(System.Int32,`0)">\r
-            <summary>\r
-            Insert an item at a specific index, moving items to the right\r
-            upwards and expanding the array if necessary.\r
-            </summary>\r
-            <param name="i">The index at which to insert.</param>\r
-            <param name="item">The item to insert.</param>\r
-        </member>\r
-        <member name="M:C5.ArrayBase`1.#ctor(System.Int32,C5.IHasher{`0})">\r
-            <summary>\r
-            Create an empty ArrayBase object.\r
-            </summary>\r
-            <param name="capacity">The initial capacity of the internal array container.\r
-            Will be rounded upwards to the nearest power of 2 greater than or equal to 8.</param>\r
-            <param name="hasher">The item hasher to use, primarily for item equality</param>\r
-        </member>\r
-        <member name="M:C5.ArrayBase`1.Clear">\r
-            <summary>\r
-            Remove all items and reset size of internal array container.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.ArrayBase`1.ToArray">\r
-            <summary>\r
-            Create an array containing (copies) of the items of this collection in enumeration order.\r
-            </summary>\r
-            <returns>The new array</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayBase`1.Check">\r
-            <summary>\r
-            Perform an internal consistency (invariant) test on the array base.\r
-            </summary>\r
-            <returns>True if test succeeds.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayBase`1.Backwards">\r
-            <summary>\r
-            Create a directed collection with the same contents as this one, but \r
-            opposite enumeration sequence.\r
-            </summary>\r
-            <returns>The mirrored collection.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayBase`1.GetEnumerator">\r
-            <summary>\r
-            Create an enumerator for this array based collection.\r
-            </summary>\r
-            <returns>The enumerator</returns>\r
-        </member>\r
-        <member name="P:C5.ArrayBase`1.Item(System.Int32,System.Int32)">\r
-            <summary>\r
-            <exception cref="T:System.IndexOutOfRangeException"/>.\r
-            </summary>\r
-            <value>The directed collection of items in a specific index interval.</value>\r
-            <param name="start">The low index of the interval (inclusive).</param>\r
-            <param name="count">The size of the range.</param>\r
-        </member>\r
-        <member name="T:C5.ArrayBase`1.Range">\r
-            <summary>\r
-            A helper class for defining results of interval queries on array based collections.\r
-            </summary>\r
-        </member>\r
-        <member name="T:C5.IDirectedCollectionValue`1">\r
-            <summary>\r
-            A sized generic collection, that can be enumerated backwards.\r
-            </summary>\r
-        </member>\r
-        <member name="T:C5.IDirectedEnumerable`1">\r
-            <summary>\r
-            A generic collection, that can be enumerated backwards.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.IDirectedEnumerable`1.Backwards">\r
-            <summary>\r
-            Create a collection containing the same items as this collection, but\r
-            whose enumerator will enumerate the items backwards. The new collection\r
-            will become invalid if the original is modified. Method typicaly used as in\r
-            <code>foreach (T x in coll.Backwards()) {...}</code>\r
-            </summary>\r
-            <returns>The backwards collection.</returns>\r
-        </member>\r
-        <member name="P:C5.IDirectedEnumerable`1.Direction">\r
-            <summary>\r
-            <code>Forwards</code> if same, else <code>Backwards</code>\r
-            </summary>\r
-            <value>The enumeration direction relative to the original collection.</value>\r
-        </member>\r
-        <member name="M:C5.IDirectedCollectionValue`1.Backwards">\r
-            <summary>\r
-            Create a collection containing the same items as this collection, but\r
-            whose enumerator will enumerate the items backwards. The new collection\r
-            will become invalid if the original is modified. Method typicaly used as in\r
-            <code>foreach (T x in coll.Backwards()) {...}</code>\r
-            </summary>\r
-            <returns>The backwards collection.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayBase`1.Range.GetEnumerator">\r
-            <summary>\r
-            Create an enumerator for this range of an array based collection.\r
-            </summary>\r
-            <returns>The enumerator</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayBase`1.Range.Backwards">\r
-            <summary>\r
-            Create a araay collection range with the same contents as this one, but \r
-            opposite enumeration sequence.\r
-            </summary>\r
-            <returns>The mirrored collection.</returns>\r
-        </member>\r
-        <member name="P:C5.ArrayBase`1.Range.Count">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>The number of items in the range</value>\r
-        </member>\r
-        <member name="P:C5.ArrayBase`1.Range.CountSpeed">\r
-            <summary>\r
-            The value is symbolic indicating the type of asymptotic complexity\r
-            in terms of the size of this collection (worst-case or amortized as\r
-            relevant).\r
-            </summary>\r
-            <value>A characterization of the speed of the \r
-            <code>Count</code> property in this collection.</value>\r
-        </member>\r
-        <member name="P:C5.ArrayBase`1.Range.Direction">\r
-            <summary>\r
-            <code>Forwards</code> if same, else <code>Backwards</code>\r
-            </summary>\r
-            <value>The enumeration direction relative to the original collection.</value>\r
-        </member>\r
-        <member name="T:C5.Sorting">\r
-            <summary>\r
-            A utility class with functions for sorting arrays with respect to an IComparer&lt;T&gt;\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.Sorting.IntroSort``1(``0[],System.Int32,System.Int32,C5.IComparer{``0})">\r
-            <summary>\r
-            Sort part of array in place using IntroSort\r
-            </summary>\r
-            <param name="a">Array to sort</param>\r
-            <param name="f">Index of first position to sort</param>\r
-            <param name="b">Index of first position beyond the part to sort</param>\r
-            <param name="c">IComparer&lt;T&gt; to sort by</param>\r
-        </member>\r
-        <member name="M:C5.Sorting.InsertionSort``1(``0[],System.Int32,System.Int32,C5.IComparer{``0})">\r
-            <summary>\r
-            Sort part of array in place using Insertion Sort\r
-            </summary>\r
-            <param name="a">Array to sort</param>\r
-            <param name="f">Index of first position to sort</param>\r
-            <param name="b">Index of first position beyond the part to sort</param>\r
-            <param name="c">IComparer&lt;T&gt; to sort by</param>\r
-        </member>\r
-        <member name="M:C5.Sorting.HeapSort``1(``0[],System.Int32,System.Int32,C5.IComparer{``0})">\r
-            <summary>\r
-            Sort part of array in place using Heap Sort\r
-            </summary>\r
-            <param name="a">Array to sort</param>\r
-            <param name="f">Index of first position to sort</param>\r
-            <param name="b">Index of first position beyond the part to sort</param>\r
-            <param name="c">IComparer&lt;T&gt; to sort by</param>\r
-        </member>\r
-        <member name="T:C5.C5Random">\r
-            <summary>\r
-            A modern random number generator based on (whatever)\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.C5Random.NextDouble">\r
-            <summary>\r
-            Get a new random System.Double value\r
-            </summary>\r
-            <returns>The random double</returns>\r
-        </member>\r
-        <member name="M:C5.C5Random.Sample">\r
-            <summary>\r
-            Get a new random System.Double value\r
-            </summary>\r
-            <returns>The random double</returns>\r
-        </member>\r
-        <member name="M:C5.C5Random.Next">\r
-            <summary>\r
-            Get a new random System.Int32 value\r
-            </summary>\r
-            <returns>The random int</returns>\r
-        </member>\r
-        <member name="M:C5.C5Random.Next(System.Int32)">\r
-            <summary>\r
-            Get a random non-negative integer less than a given upper bound\r
-            </summary>\r
-            <param name="max">The upper bound (exclusive)</param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.C5Random.Next(System.Int32,System.Int32)">\r
-            <summary>\r
-            Get a random integer between two given bounds\r
-            </summary>\r
-            <param name="min">The lower bound (inclusive)</param>\r
-            <param name="max">The upper bound (exclusive)</param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.C5Random.NextBytes(System.Byte[])">\r
-            <summary>\r
-            Fill a array of byte with random bytes\r
-            </summary>\r
-            <param name="buffer">The array to fill</param>\r
-        </member>\r
-        <member name="M:C5.C5Random.#ctor">\r
-            <summary>\r
-            Create a random number generator seed by system time.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.C5Random.#ctor(System.Int64)">\r
-            <summary>\r
-            Create a random number generator with a given seed\r
-            </summary>\r
-            <param name="seed">The seed</param>\r
-        </member>\r
-        <member name="T:C5.TestedAttribute">\r
-            <summary>\r
-            A custom attribute to mark methods and properties as being tested \r
-            sufficiently in the regression test suite.\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.TestedAttribute.via">\r
-            <summary>\r
-            Optional reference to test case\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TestedAttribute.ToString">\r
-            <summary>\r
-            Pretty print attribute value\r
-            </summary>\r
-            <returns>"Tested via " + via</returns>\r
-        </member>\r
-        <member name="T:C5.HashBag`1">\r
-            <summary>\r
-            A bag collection based on a hash table of (item,count) pairs. \r
-            </summary>\r
-        </member>\r
-        <member name="T:C5.ICollection`1">\r
-            <summary>\r
-            The simplest interface of a main stream generic collection\r
-            with lookup, insertion and removal operations. \r
-            </summary>\r
-        </member>\r
-        <member name="T:C5.IExtensible`1">\r
-            <summary>\r
-            A generic collection to which one may add items. This is just the intersection\r
-            of the main stream generic collection interfaces and the priority queue interface,\r
-            <see cref="T:C5.ICollection!1"/> and <see cref="T:C5.IPriorityQueue!1"/>.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.IExtensible`1.Add(`0)">\r
-            <summary>\r
-            Add an item to this collection if possible. If this collection has set\r
-            semantics, the item will be added if not already in the collection. If\r
-            bag semantics, the item will always be added.\r
-            </summary>\r
-            <param name="item">The item to add.</param>\r
-            <returns>True if item was added.</returns>\r
-        </member>\r
-        <member name="M:C5.IExtensible`1.AddAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Add the elements from another collection to this collection. If this\r
-            collection has set semantics, only items not already in the collection\r
-            will be added.\r
-            </summary>\r
-            <param name="items">The items to add.</param>\r
-        </member>\r
-        <member name="M:C5.IExtensible`1.AddAll``1(System.Collections.Generic.IEnumerable{``0})">\r
-            <summary>\r
-            Add the elements from another collection with a more specialized item type \r
-            to this collection. If this\r
-            collection has set semantics, only items not already in the collection\r
-            will be added.\r
-            </summary>\r
-            <typeparam name="U">The type of items to add</typeparam>\r
-            <param name="items">The items to add</param>\r
-        </member>\r
-        <member name="M:C5.IExtensible`1.Check">\r
-            <summary>\r
-            Check the integrity of the internal data structures of this collection.\r
-            <p>This is only relevant for developers of the library</p>\r
-            </summary>\r
-            <returns>True if check was passed.</returns>\r
-        </member>\r
-        <member name="P:C5.IExtensible`1.AllowsDuplicates">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>False if this collection has set semantics, true if bag semantics.</value>\r
-        </member>\r
-        <member name="P:C5.IExtensible`1.SyncRoot">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>An object to be used for locking to enable multi threaded code\r
-            to acces this collection safely.</value>\r
-        </member>\r
-        <member name="P:C5.IExtensible`1.IsEmpty">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>True if this collection is empty.</value>\r
-        </member>\r
-        <member name="M:C5.ICollection`1.GetHashCode">\r
-            <summary>\r
-            The hashcode is defined as the sum of <code>h(item)</code> over the items\r
-            of the collection, where the function <code>h</code> is??? \r
-            </summary>\r
-            <returns>The unordered hashcode of this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.ICollection`1.Equals(C5.ICollection{`0})">\r
-            <summary>\r
-            Compare the contents of this collection to another one without regards to\r
-            the sequence order. The comparison will use this collection's itemhasher\r
-            to compare individual items.\r
-            </summary>\r
-            <param name="that">The collection to compare to.</param>\r
-            <returns>True if this collection and that contains the same items.</returns>\r
-        </member>\r
-        <member name="M:C5.ICollection`1.Contains(`0)">\r
-            <summary>\r
-            Check if this collection contains (an item equivalent to according to the\r
-            itemhasher) a particular value.\r
-            </summary>\r
-            <param name="item">The value to check for.</param>\r
-            <returns>True if the items is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.ICollection`1.ContainsCount(`0)">\r
-            <summary>\r
-            Count the number of items of the collection equal to a particular value.\r
-            Returns 0 if and only if the value is not in the collection.\r
-            </summary>\r
-            <param name="item">The value to count.</param>\r
-            <returns>The number of copies found.</returns>\r
-        </member>\r
-        <member name="M:C5.ICollection`1.ContainsAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Check if this collection contains all the values in another collection.\r
-            If this collection has bag semantics (<code>NoDuplicates==false</code>)\r
-            the check is made with respect to multiplicities, else multiplicities\r
-            are not taken into account.\r
-            </summary>\r
-            <param name="items">The </param>\r
-            <returns>True if all values in <code>items</code>is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.ICollection`1.Find(`0@)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, return in the ref argument (a\r
-            binary copy of) the actual value found.\r
-            </summary>\r
-            <param name="item">The value to look for.</param>\r
-            <returns>True if the items is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.ICollection`1.FindOrAdd(`0@)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, return in the ref argument (a\r
-            binary copy of) the actual value found. Else, add the item to the collection.\r
-            </summary>\r
-            <param name="item">The value to look for.</param>\r
-            <returns>True if the item was found (hence not added).</returns>\r
-        </member>\r
-        <member name="M:C5.ICollection`1.Update(`0)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, update the item in the collection \r
-            to with a binary copy of the supplied value. If the collection has bag semantics,\r
-            it is implementation dependent if this updates all equivalent copies in\r
-            the collection or just one.\r
-            </summary>\r
-            <param name="item">Value to update.</param>\r
-            <returns>True if the item was found and hence updated.</returns>\r
-        </member>\r
-        <member name="M:C5.ICollection`1.UpdateOrAdd(`0)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, update the item in the collection \r
-            to with a binary copy of the supplied value; else add the value to the collection. \r
-            </summary>\r
-            <param name="item">Value to add or update.</param>\r
-            <returns>True if the item was found and updated (hence not added).</returns>\r
-        </member>\r
-        <member name="M:C5.ICollection`1.Remove(`0)">\r
-            <summary>\r
-            Remove a particular item from this collection. If the collection has bag\r
-            semantics only one copy equivalent to the supplied item is removed. \r
-            </summary>\r
-            <param name="item">The value to remove.</param>\r
-            <returns>True if the item was found (and removed).</returns>\r
-        </member>\r
-        <member name="M:C5.ICollection`1.RemoveWithReturn(`0@)">\r
-            <summary>\r
-            Remove a particular item from this collection if found. If the collection\r
-            has bag semantics only one copy equivalent to the supplied item is removed,\r
-            which one is implementation dependent. \r
-            If an item was removed, report a binary copy of the actual item removed in \r
-            the argument.\r
-            </summary>\r
-            <param name="item">The value to remove on input.</param>\r
-            <returns>True if the item was found (and removed).</returns>\r
-        </member>\r
-        <member name="M:C5.ICollection`1.RemoveAllCopies(`0)">\r
-            <summary>\r
-            Remove all items equivalent to a given value.\r
-            </summary>\r
-            <param name="item">The value to remove.</param>\r
-        </member>\r
-        <member name="M:C5.ICollection`1.RemoveAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Remove all items in another collection from this one. If this collection\r
-            has bag semantics, take multiplicities into account.\r
-            </summary>\r
-            <param name="items">The items to remove.</param>\r
-        </member>\r
-        <member name="M:C5.ICollection`1.Clear">\r
-            <summary>\r
-            Remove all items from this collection.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.ICollection`1.RetainAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Remove all items not in some other collection from this one. If this collection\r
-            has bag semantics, take multiplicities into account.\r
-            </summary>\r
-            <param name="items">The items to retain.</param>\r
-        </member>\r
-        <member name="P:C5.ICollection`1.IsReadOnly">\r
-            <summary>\r
-            If true any call of an updating operation will throw an\r
-            <code>InvalidOperationException</code>\r
-            </summary>\r
-            <value>True if this collection is read only.</value>\r
-        </member>\r
-        <member name="P:C5.ICollection`1.ContainsSpeed">\r
-            <summary>\r
-            The value is symbolic indicating the type of asymptotic complexity\r
-            in terms of the size of this collection (worst-case or amortized as\r
-            relevant).\r
-            </summary>\r
-            <value>A characterization of the speed of lookup operations\r
-            (<code>Contains()</code> etc.) of the implementation of this list.</value>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.#ctor">\r
-            <summary>\r
-            Create a hash bag with the deafult item hasher.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.#ctor(C5.IHasher{`0})">\r
-            <summary>\r
-            Create a hash bag with an external item hasher.\r
-            </summary>\r
-            <param name="h">The external hasher.</param>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.Contains(`0)">\r
-            <summary>\r
-            Check if an item is in the bag \r
-            </summary>\r
-            <param name="item">The item to look for</param>\r
-            <returns>True if bag contains item</returns>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.Find(`0@)">\r
-            <summary>\r
-            Check if an item (collection equal to a given one) is in the bag and\r
-            if so report the actual item object found.\r
-            </summary>\r
-            <param name="item">On entry, the item to look for.\r
-            On exit the item found, if any</param>\r
-            <returns>True if bag contains item</returns>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.Update(`0)">\r
-            <summary>\r
-            Check if an item (collection equal to a given one) is in the bag and\r
-            if so replace the item object in the bag with the supplied one.\r
-            </summary>\r
-            <param name="item">The item object to update with</param>\r
-            <returns>True if item was found (and updated)</returns>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.FindOrAdd(`0@)">\r
-            <summary>\r
-            Check if an item (collection equal to a given one) is in the bag.\r
-            If found, report the actual item object in the bag,\r
-            else add the supplied one.\r
-            </summary>\r
-            <param name="item">On entry, the item to look for or add.\r
-            On exit the actual object found, if any.</param>\r
-            <returns>True if item was found</returns>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.UpdateOrAdd(`0)">\r
-            <summary>\r
-            Check if an item (collection equal to a supplied one) is in the bag and\r
-            if so replace the item object in the set with the supplied one; else\r
-            add the supplied one.\r
-            </summary>\r
-            <param name="item">The item to look for and update or add</param>\r
-            <returns>True if item was updated</returns>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.Remove(`0)">\r
-            <summary>\r
-            Remove one copy af an item from the bag\r
-            </summary>\r
-            <param name="item">The item to remove</param>\r
-            <returns>True if item was (found and) removed </returns>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.RemoveWithReturn(`0@)">\r
-            <summary>\r
-            Remove one copy of an item from the bag, reporting the actual matching item object.\r
-            </summary>\r
-            <param name="item">On entry the item to remove.\r
-            On exit, the actual removed item object.</param>\r
-            <returns>True if item was found.</returns>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.RemoveAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Remove all items in a supplied collection from this bag, counting multiplicities.\r
-            </summary>\r
-            <param name="items">The items to remove.</param>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.Clear">\r
-            <summary>\r
-            Remove all items from the bag, resetting internal table to initial size.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.RetainAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Remove all items *not* in a supplied collection from this bag,\r
-            counting multiplicities.\r
-            </summary>\r
-            <param name="items">The items to retain</param>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.ContainsAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Check if all items in a supplied collection is in this bag\r
-            (counting multiplicities). \r
-            </summary>\r
-            <param name="items">The items to look for.</param>\r
-            <returns>True if all items are found.</returns>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.ToArray">\r
-            <summary>\r
-            Create an array containing all items in this bag (in enumeration order).\r
-            </summary>\r
-            <returns>The array</returns>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.ContainsCount(`0)">\r
-            <summary>\r
-            Count the number of times an item is in this set.\r
-            </summary>\r
-            <param name="item">The item to look for.</param>\r
-            <returns>The count</returns>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.RemoveAllCopies(`0)">\r
-            <summary>\r
-            Remove all copies of item from this set.\r
-            </summary>\r
-            <param name="item">The item to remove</param>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.CopyTo(`0[],System.Int32)">\r
-            <summary>\r
-            Copy the items of this bag to part of an array.\r
-            <exception cref="T:System.ArgumentOutOfRangeException"/> if i is negative.\r
-            <exception cref="T:System.ArgumentException"/> if the array does not have room for the items.\r
-            </summary>\r
-            <param name="a">The array to copy to</param>\r
-            <param name="i">The starting index.</param>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.Add(`0)">\r
-            <summary>\r
-            Add an item to this bag.\r
-            </summary>\r
-            <param name="item">The item to add.</param>\r
-            <returns>Always true</returns>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.AddAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Add all items of a collection to this set.\r
-            </summary>\r
-            <param name="items">The items to add</param>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.AddAll``1(System.Collections.Generic.IEnumerable{``0})">\r
-            <summary>\r
-            Add the elements from another collection with a more specialized item type \r
-            to this collection. \r
-            </summary>\r
-            <typeparam name="U">The type of items to add</typeparam>\r
-            <param name="items">The items to add</param>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.GetEnumerator">\r
-            <summary>\r
-            Create an enumerator for this bag.\r
-            </summary>\r
-            <returns>The enumerator</returns>\r
-        </member>\r
-        <member name="M:C5.HashBag`1.Check">\r
-            <summary>\r
-            Test internal structure of data (invariants)\r
-            </summary>\r
-            <returns>True if pass</returns>\r
-        </member>\r
-        <member name="P:C5.HashBag`1.ContainsSpeed">\r
-            <summary>\r
-            The complexity of the Contains operation\r
-            </summary>\r
-            <value>Always returns Speed.Constant</value>\r
-        </member>\r
-        <member name="P:C5.HashBag`1.AllowsDuplicates">\r
-            <summary>\r
-            Report if this is a set collection.\r
-            </summary>\r
-            <value>Always true</value>\r
-        </member>\r
-        <member name="T:C5.Applier`1">\r
-            <summary>\r
-            A generic delegate that when invoked performs some operation\r
-            on it T argument.\r
-            </summary>\r
-        </member>\r
-        <member name="T:C5.Mapper`2">\r
-            <summary>\r
-            A generic delegate whose invocation constitutes a map from T to V.\r
-            </summary>\r
-        </member>\r
-        <member name="T:C5.Filter`1">\r
-            <summary>\r
-            A generic delegate that when invoked on a T item returns a boolean\r
-            value -- i.e. a T predicate.\r
-            </summary> \r
-        </member>\r
-        <member name="T:C5.Speed">\r
-            <summary>\r
-            The symbolic characterization of the speed of lookups for a collection.\r
-            The values may refer to worst-case, amortized and/or expected asymtotic \r
-            complexity wrt. the collection size.\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.Speed.PotentiallyInfinite">\r
-            <summary>\r
-            Counting the collection with the <code>Count property</code> may not return\r
-            (for a synthetic and potentially infinite collection).\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.Speed.Linear">\r
-            <summary>\r
-            Lookup operations like <code>Contains(T item)</code> or the <code>Count</code>\r
-            property may take time O(n),\r
-            where n is the size of the collection.\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.Speed.Log">\r
-            <summary>\r
-            Lookup operations like <code>Contains(T item)</code> or the <code>Count</code>\r
-            property  takes time O(log n),\r
-            where n is the size of the collection.\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.Speed.Constant">\r
-            <summary>\r
-            Lookup operations like <code>Contains(T item)</code> or the <code>Count</code>\r
-            property  takes time O(1),\r
-            where n is the size of the collection.\r
-            </summary>\r
-        </member>\r
-        <member name="T:C5.ISequenced`1">\r
-             <summary>\r
-             An editable collection maintaining a definite sequence order of the items.\r
-            \r
-             <p>Implementations of this interface must compute the hash code and \r
-             equality exactly as prescribed in the method definitions in order to\r
-             be consistent with other collection classes implementing this interface.</p>\r
-             <p>This interface is usually implemented by explicit interface implementation,\r
-             not as ordinary virtual methods.</p>\r
-             </summary>\r
-        </member>\r
-        <member name="M:C5.ISequenced`1.GetHashCode">\r
-            <summary>\r
-            The hashcode is defined as <code>h(...h(h(x1),x2)...,xn)</code> for\r
-            <code>h(a,b)=31*a+b</code> and the x's the hash codes of \r
-            </summary>\r
-            <returns>The sequence order hashcode of this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.ISequenced`1.Equals(C5.ISequenced{`0})">\r
-            <summary>\r
-            Compare this sequenced collection to another one in sequence order.\r
-            </summary>\r
-            <param name="that">The sequenced collection to compare to.</param>\r
-            <returns>True if this collection and that contains equal (according to\r
-            this collection's itemhasher) in the same sequence order.</returns>\r
-        </member>\r
-        <member name="T:C5.IIndexed`1">\r
-            <summary>\r
-            A sequenced collection, where indices of items in the order are maintained\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.IIndexed`1.IndexOf(`0)">\r
-            <summary>\r
-            Searches for an item in the list going forwrds from the start.\r
-            </summary>\r
-            <param name="item">Item to search for.</param>\r
-            <returns>Index of item from start.</returns>\r
-        </member>\r
-        <member name="M:C5.IIndexed`1.LastIndexOf(`0)">\r
-            <summary>\r
-            Searches for an item in the list going backwords from the end.\r
-            </summary>\r
-            <param name="item">Item to search for.</param>\r
-            <returns>Index of of item from the end.</returns>\r
-        </member>\r
-        <member name="M:C5.IIndexed`1.RemoveAt(System.Int32)">\r
-            <summary>\r
-            Remove the item at a specific position of the list.\r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt;= the size of the collection.\r
-            </summary>\r
-            <param name="i">The index of the item to remove.</param>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.IIndexed`1.RemoveInterval(System.Int32,System.Int32)">\r
-            <summary>\r
-            Remove all items in an index interval.\r
-            <exception cref="T:System.IndexOutOfRangeException"/>???. \r
-            </summary>\r
-            <param name="start">The index of the first item to remove.</param>\r
-            <param name="count">The number of items to remove.</param>\r
-        </member>\r
-        <member name="P:C5.IIndexed`1.Item(System.Int32)">\r
-            <summary>\r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt;= the size of the collection.\r
-            </summary>\r
-            <value>The i'th item of this list.</value>\r
-            <param name="i">the index to lookup</param>\r
-        </member>\r
-        <member name="P:C5.IIndexed`1.Item(System.Int32,System.Int32)">\r
-            <summary>\r
-            <exception cref="T:System.IndexOutOfRangeException"/>.\r
-            </summary>\r
-            <value>The directed collection of items in a specific index interval.</value>\r
-            <param name="start">The low index of the interval (inclusive).</param>\r
-            <param name="count">The size of the range.</param>\r
-        </member>\r
-        <member name="T:C5.IStack`1">\r
-            <summary>\r
-            The interface describing the operations of a LIFO stack data structure.\r
-            </summary>\r
-            <typeparam name="T">The item type</typeparam>\r
-        </member>\r
-        <member name="M:C5.IStack`1.Push(`0)">\r
-            <summary>\r
-            Push an item to the top of the stack.\r
-            </summary>\r
-            <param name="item">The item</param>\r
-        </member>\r
-        <member name="M:C5.IStack`1.Pop">\r
-            <summary>\r
-            Pop the item at the top of the stack from the stack.\r
-            </summary>\r
-            <returns>The popped item.</returns>\r
-        </member>\r
-        <member name="T:C5.IQueue`1">\r
-            <summary>\r
-            The interface describing the operations of a FIFO queue data structure.\r
-            </summary>\r
-            <typeparam name="T">The item type</typeparam>\r
-        </member>\r
-        <member name="M:C5.IQueue`1.EnQueue(`0)">\r
-            <summary>\r
-            Enqueue an item at the back of the queue. \r
-            </summary>\r
-            <param name="item">The item</param>\r
-        </member>\r
-        <member name="M:C5.IQueue`1.DeQueue">\r
-            <summary>\r
-            Dequeue an item from the front of the queue.\r
-            </summary>\r
-            <returns>The item</returns>\r
-        </member>\r
-        <member name="T:C5.IList`1">\r
-             <summary>\r
-             This is an indexed collection, where the item order is chosen by \r
-             the user at insertion time.\r
-            \r
-             NBNBNB: we neeed a description of the view functionality here!\r
-             </summary>\r
-        </member>\r
-        <member name="M:C5.IList`1.Insert(System.Int32,`0)">\r
-            <summary>\r
-            Insert an item at a specific index location in this list. \r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt; the size of the collection.</summary>\r
-            <exception cref="T:System.InvalidOperationException"/> if the list has\r
-            <code>NoDuplicates=true</code> and the item is \r
-            already in the list.\r
-            <param name="i">The index at which to insert.</param>\r
-            <param name="item">The item to insert.</param>\r
-        </member>\r
-        <member name="M:C5.IList`1.InsertFirst(`0)">\r
-            <summary>\r
-            Insert an item at the front of this list.\r
-            <exception cref="T:System.InvalidOperationException"/> if the list has\r
-            <code>NoDuplicates=true</code> and the item is \r
-            already in the list.\r
-            </summary>\r
-            <param name="item">The item to insert.</param>\r
-        </member>\r
-        <member name="M:C5.IList`1.InsertLast(`0)">\r
-            <summary>\r
-            Insert an item at the back of this list.\r
-            <exception cref="T:System.InvalidOperationException"/> if the list has\r
-            <code>NoDuplicates=true</code> and the item is \r
-            already in the list.\r
-            </summary>\r
-            <param name="item">The item to insert.</param>\r
-        </member>\r
-        <member name="M:C5.IList`1.InsertBefore(`0,`0)">\r
-            <summary>\r
-            Insert an item right before the first occurrence of some target item.\r
-            <exception cref="T:System.InvalidOperationException"/> if target   is not found\r
-            or if the list has <code>NoDuplicates=true</code> and the item is \r
-            already in the list.\r
-            </summary>\r
-            <param name="item">The item to insert.</param>\r
-            <param name="target">The target before which to insert.</param>\r
-        </member>\r
-        <member name="M:C5.IList`1.InsertAfter(`0,`0)">\r
-            <summary>\r
-            Insert an item right after the last(???) occurrence of some target item.\r
-            <exception cref="T:System.InvalidOperationException"/> if target   is not found\r
-            or if the list has <code>NoDuplicates=true</code> and the item is \r
-            already in the list.\r
-            </summary>\r
-            <param name="item">The item to insert.</param>\r
-            <param name="target">The target after which to insert.</param>\r
-        </member>\r
-        <member name="M:C5.IList`1.InsertAll(System.Int32,System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Insert into this list all items from an enumerable collection starting \r
-            at a particular index.\r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt; the size of the collection.\r
-            <exception cref="T:System.InvalidOperationException"/> if the list has \r
-            <code>NoDuplicates=true</code> and one of the items to insert is\r
-            already in the list.\r
-            </summary>\r
-            <param name="i">Index to start inserting at</param>\r
-            <param name="items">Items to insert</param>\r
-        </member>\r
-        <member name="M:C5.IList`1.FindAll(C5.Filter{`0})">\r
-            <summary>\r
-            Create a new list consisting of the items of this list satisfying a \r
-            certain predicate.\r
-            </summary>\r
-            <param name="filter">The filter delegate defining the predicate.</param>\r
-            <returns>The new list.</returns>\r
-        </member>\r
-        <member name="M:C5.IList`1.Map``1(C5.Mapper{`0,``0})">\r
-            <summary>\r
-            Create a new list consisting of the results of mapping all items of this\r
-            list. The new list will use the default hasher for the item type V.\r
-            </summary>\r
-            <typeparam name="V">The type of items of the new list</typeparam>\r
-            <param name="mapper">The delegate defining the map.</param>\r
-            <returns>The new list.</returns>\r
-        </member>\r
-        <member name="M:C5.IList`1.Map``1(C5.Mapper{`0,``0},C5.IHasher{``0})">\r
-            <summary>\r
-            Create a new list consisting of the results of mapping all items of this\r
-            list. The new list will use a specified hasher for the item type.\r
-            </summary>\r
-            <typeparam name="V">The type of items of the new list</typeparam>\r
-            <param name="mapper">The delegate defining the map.</param>\r
-            <param name="hasher">The hasher to use for the new list</param>\r
-            <returns>The new list.</returns>\r
-        </member>\r
-        <member name="M:C5.IList`1.Remove">\r
-            <summary>\r
-            Remove one item from the list: from the front if <code>FIFO</code>\r
-            is true, else from the back.\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is empty.\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.IList`1.RemoveFirst">\r
-            <summary>\r
-            Remove one item from the fromnt of the list.\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is empty.\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.IList`1.RemoveLast">\r
-            <summary>\r
-            Remove one item from the back of the list.\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is empty.\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.IList`1.View(System.Int32,System.Int32)">\r
-            <summary>\r
-            Create a list view on this list. \r
-            <exception cref="T:System.ArgumentOutOfRangeException"/> if the view would not fit into\r
-            this list.\r
-            </summary>\r
-            <param name="start">The index in this list of the start of the view.</param>\r
-            <param name="count">The size of the view.</param>\r
-            <returns>The new list view.</returns>\r
-        </member>\r
-        <member name="M:C5.IList`1.Slide(System.Int32)">\r
-            <summary>\r
-            Slide this list view along the underlying list.\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is not a view.\r
-            <exception cref="T:System.ArgumentOutOfRangeException"/> if the operation\r
-            would bring either end of the view outside the underlying list.\r
-            </summary>\r
-            <param name="offset">The signed amount to slide: positive to slide\r
-            towards the end.</param>\r
-        </member>\r
-        <member name="M:C5.IList`1.Slide(System.Int32,System.Int32)">\r
-            <summary>\r
-            Slide this list view along the underlying list, changing its size.\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is not a view.\r
-            <exception cref="T:System.ArgumentOutOfRangeException"/> if the operation\r
-            would bring either end of the view outside the underlying list.\r
-            </summary>\r
-            <param name="offset">The signed amount to slide: positive to slide\r
-            towards the end.</param>\r
-            <param name="size">The new size of the view.</param>\r
-        </member>\r
-        <member name="M:C5.IList`1.Reverse">\r
-            <summary>\r
-            Reverse the list so the items are in the opposite sequence order.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.IList`1.Reverse(System.Int32,System.Int32)">\r
-            <summary>\r
-            Reverst part of the list so the items are in the opposite sequence order.\r
-            <exception cref="T:System.ArgumentException"/> if the count is negative.\r
-            <exception cref="T:System.ArgumentOutOfRangeException"/> if the part does not fit\r
-            into the list.\r
-            </summary>\r
-            <param name="start">The index of the start of the part to reverse.</param>\r
-            <param name="count">The size of the part to reverse.</param>\r
-        </member>\r
-        <member name="M:C5.IList`1.IsSorted(C5.IComparer{`0})">\r
-            <summary>\r
-            Check if this list is sorted according to a specific sorting order.\r
-            </summary>\r
-            <param name="c">The comparer defining the sorting order.</param>\r
-            <returns>True if the list is sorted, else false.</returns>\r
-        </member>\r
-        <member name="M:C5.IList`1.Sort(C5.IComparer{`0})">\r
-            <summary>\r
-            Sort the items of the list according to a specific sorting order.\r
-            </summary>\r
-            <param name="c">The comparer defining the sorting order.</param>\r
-        </member>\r
-        <member name="M:C5.IList`1.Shuffle">\r
-            <summary>\r
-            Randonmly shuffle the items of this list. \r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.IList`1.Shuffle(System.Random)">\r
-            <summary>\r
-            Shuffle the items of this list according to a specific random source.\r
-            </summary>\r
-            <param name="rnd">The random source.</param>\r
-        </member>\r
-        <member name="P:C5.IList`1.First">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is empty.\r
-            </summary>\r
-            <value>The first item in this list.</value>\r
-        </member>\r
-        <member name="P:C5.IList`1.Last">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is empty.\r
-            </summary>\r
-            <value>The last item in this list.</value>\r
-        </member>\r
-        <member name="P:C5.IList`1.FIFO">\r
-            <summary>\r
-            Since <code>Add(T item)</code> always add at the end of the list,\r
-            this describes if list has FIFO or LIFO semantics.\r
-            </summary>\r
-            <value>True if the <code>Remove()</code> operation removes from the\r
-            start of the list, false if it removes from the end.</value>\r
-        </member>\r
-        <member name="P:C5.IList`1.Item(System.Int32)">\r
-            <summary>\r
-            On this list, this indexer is read/write.\r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt;= the size of the collection.\r
-            </summary>\r
-            <value>The i'th item of this list.</value>\r
-            <param name="i">The index of the item to fetch or store.</param>\r
-        </member>\r
-        <member name="P:C5.IList`1.Underlying">\r
-            <summary>\r
-            Null if this list is not a view.\r
-            </summary>\r
-            <value>Underlying list for view.</value>\r
-        </member>\r
-        <member name="P:C5.IList`1.Offset">\r
-            <summary>\r
-            </summary>\r
-            <value>Offset for this list view or 0 for an underlying list.</value>\r
-        </member>\r
-        <member name="T:C5.IPriorityQueue`1">\r
-            <summary>\r
-            A generic collection of items prioritized by a comparison (order) relation.\r
-            Supports adding items and reporting or removing extremal elements. \r
-            The priority queue itself exports the used\r
-            order relation through its implementation of <code>IComparer&lt;T&gt;</code>\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.IPriorityQueue`1.FindMin">\r
-            <summary>\r
-            Find the current least item of this priority queue.\r
-            </summary>\r
-            <returns>The least item.</returns>\r
-        </member>\r
-        <member name="M:C5.IPriorityQueue`1.DeleteMin">\r
-            <summary>\r
-            Remove the least item from this  priority queue.\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.IPriorityQueue`1.FindMax">\r
-            <summary>\r
-            Find the current largest item of this priority queue.\r
-            </summary>\r
-            <returns>The largest item.</returns>\r
-        </member>\r
-        <member name="M:C5.IPriorityQueue`1.DeleteMax">\r
-            <summary>\r
-            Remove the largest item from this  priority queue.\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="P:C5.IPriorityQueue`1.Comparer">\r
-            <summary>\r
-            The comparer object supplied at creation time for this collection\r
-            </summary>\r
-            <value>The comparer</value>\r
-        </member>\r
-        <member name="T:C5.ISorted`1">\r
-            <summary>\r
-            A collection where items are maintained in sorted order.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.ISorted`1.Predecessor(`0)">\r
-            <summary>\r
-            Find the strict predecessor in the sorted collection of a particular value,\r
-            i.e. the largest item in the collection less than the supplied value.\r
-            <exception cref="T:System.InvalidOperationException"/> if no such element exists (the\r
-            supplied  value is less than or equal to the minimum of this collection.)\r
-            </summary>\r
-            <param name="item">The item to find the predecessor for.</param>\r
-            <returns>The predecessor.</returns>\r
-        </member>\r
-        <member name="M:C5.ISorted`1.Successor(`0)">\r
-            <summary>\r
-            Find the strict successor in the sorted collection of a particular value,\r
-            i.e. the least item in the collection greater than the supplied value.\r
-            <exception cref="T:System.InvalidOperationException"/> if no such element exists (the\r
-            supplied  value is greater than or equal to the maximum of this collection.)\r
-            </summary>\r
-            <param name="item">The item to find the successor for.</param>\r
-            <returns>The successor.</returns>\r
-        </member>\r
-        <member name="M:C5.ISorted`1.WeakPredecessor(`0)">\r
-            <summary>\r
-            Find the weak predecessor in the sorted collection of a particular value,\r
-            i.e. the largest item in the collection less than or equal to the supplied value.\r
-            <exception cref="T:System.InvalidOperationException"/> if no such element exists (the\r
-            supplied  value is less than the minimum of this collection.)\r
-            </summary>\r
-            <param name="item">The item to find the weak predecessor for.</param>\r
-            <returns>The weak predecessor.</returns>\r
-        </member>\r
-        <member name="M:C5.ISorted`1.WeakSuccessor(`0)">\r
-            <summary>\r
-            Find the weak successor in the sorted collection of a particular value,\r
-            i.e. the least item in the collection greater than or equal to the supplied value.\r
-            <exception cref="T:System.InvalidOperationException"/> if no such element exists (the\r
-            supplied  value is greater than the maximum of this collection.)\r
-            </summary>\r
-            <param name="item">The item to find the weak successor for.</param>\r
-            <returns>The weak successor.</returns>\r
-        </member>\r
-        <member name="M:C5.ISorted`1.Cut(System.IComparable{`0},`0@,System.Boolean@,`0@,System.Boolean@)">\r
-            <summary>\r
-            Perform a search in the sorted collection for the ranges in which a\r
-            non-decreasing function from the item type to <code>int</code> is\r
-            negative, zero respectively positive. If the supplied cut function is\r
-            not non-decreasing, the result of this call is undefined.\r
-            </summary>\r
-            <param name="c">The cut function <code>T</code> to <code>int</code>, given\r
-            as an <code>IComparable&lt;T&gt;</code> object, where the cut function is\r
-            the <code>c.CompareTo(T that)</code> method.</param>\r
-            <param name="low">Returns the largest item in the collection, where the\r
-            cut function is negative (if any).</param>\r
-            <param name="lowIsValid">True if the cut function is negative somewhere\r
-            on this collection.</param>\r
-            <param name="high">Returns the least item in the collection, where the\r
-            cut function is positive (if any).</param>\r
-            <param name="highIsValid">True if the cut function is positive somewhere\r
-            on this collection.</param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.ISorted`1.RangeFrom(`0)">\r
-            <summary>\r
-            Query this sorted collection for items greater than or equal to a supplied value.\r
-            </summary>\r
-            <param name="bot">The lower bound (inclusive).</param>\r
-            <returns>The result directed collection.</returns>\r
-        </member>\r
-        <member name="M:C5.ISorted`1.RangeFromTo(`0,`0)">\r
-            <summary>\r
-            Query this sorted collection for items between two supplied values.\r
-            </summary>\r
-            <param name="bot">The lower bound (inclusive).</param>\r
-            <param name="top">The upper bound (exclusive).</param>\r
-            <returns>The result directed collection.</returns>\r
-        </member>\r
-        <member name="M:C5.ISorted`1.RangeTo(`0)">\r
-            <summary>\r
-            Query this sorted collection for items less than a supplied value.\r
-            </summary>\r
-            <param name="top">The upper bound (exclusive).</param>\r
-            <returns>The result directed collection.</returns>\r
-        </member>\r
-        <member name="M:C5.ISorted`1.RangeAll">\r
-            <summary>\r
-            Create a directed collection with the same items as this collection.\r
-            </summary>\r
-            <returns>The result directed collection.</returns>\r
-        </member>\r
-        <member name="M:C5.ISorted`1.AddSorted(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Add all the items from another collection with an enumeration order that \r
-            is increasing in the items.\r
-            <exception cref="T:System.ArgumentException"/> if the enumerated items turns out\r
-            not to be in increasing order.\r
-            </summary>\r
-            <param name="items">The collection to add.</param>\r
-        </member>\r
-        <member name="M:C5.ISorted`1.RemoveRangeFrom(`0)">\r
-            <summary>\r
-            Remove all items of this collection above or at a supplied threshold.\r
-            </summary>\r
-            <param name="low">The lower threshold (inclusive).</param>\r
-        </member>\r
-        <member name="M:C5.ISorted`1.RemoveRangeFromTo(`0,`0)">\r
-            <summary>\r
-            Remove all items of this collection between two supplied thresholds.\r
-            </summary>\r
-            <param name="low">The lower threshold (inclusive).</param>\r
-            <param name="hi">The upper threshold (exclusive).</param>\r
-        </member>\r
-        <member name="M:C5.ISorted`1.RemoveRangeTo(`0)">\r
-            <summary>\r
-            Remove all items of this collection below a supplied threshold.\r
-            </summary>\r
-            <param name="hi">The upper threshold (exclusive).</param>\r
-        </member>\r
-        <member name="T:C5.IIndexedSorted`1">\r
-            <summary>\r
-            A collection where items are maintained in sorted order together\r
-            with their indexes in that order.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.IIndexedSorted`1.CountFrom(`0)">\r
-            <summary>\r
-            Determine the number of items at or above a supplied threshold.\r
-            </summary>\r
-            <param name="bot">The lower bound (inclusive)</param>\r
-            <returns>The number of matcing items.</returns>\r
-        </member>\r
-        <member name="M:C5.IIndexedSorted`1.CountFromTo(`0,`0)">\r
-            <summary>\r
-            Determine the number of items between two supplied thresholds.\r
-            </summary>\r
-            <param name="bot">The lower bound (inclusive)</param>\r
-            <param name="top">The upper bound (exclusive)</param>\r
-            <returns>The number of matcing items.</returns>\r
-        </member>\r
-        <member name="M:C5.IIndexedSorted`1.CountTo(`0)">\r
-            <summary>\r
-            Determine the number of items below a supplied threshold.\r
-            </summary>\r
-            <param name="top">The upper bound (exclusive)</param>\r
-            <returns>The number of matcing items.</returns>\r
-        </member>\r
-        <member name="M:C5.IIndexedSorted`1.RangeFrom(`0)">\r
-            <summary>\r
-            Query this sorted collection for items greater than or equal to a supplied value.\r
-            </summary>\r
-            <param name="bot">The lower bound (inclusive).</param>\r
-            <returns>The result directed collection.</returns>\r
-        </member>\r
-        <member name="M:C5.IIndexedSorted`1.RangeFromTo(`0,`0)">\r
-            <summary>\r
-            Query this sorted collection for items between two supplied values.\r
-            </summary>\r
-            <param name="bot">The lower bound (inclusive).</param>\r
-            <param name="top">The upper bound (exclusive).</param>\r
-            <returns>The result directed collection.</returns>\r
-        </member>\r
-        <member name="M:C5.IIndexedSorted`1.RangeTo(`0)">\r
-            <summary>\r
-            Query this sorted collection for items less than a supplied value.\r
-            </summary>\r
-            <param name="top">The upper bound (exclusive).</param>\r
-            <returns>The result directed collection.</returns>\r
-        </member>\r
-        <member name="M:C5.IIndexedSorted`1.FindAll(C5.Filter{`0})">\r
-            <summary>\r
-            Create a new indexed sorted collection consisting of the items of this\r
-            indexed sorted collection satisfying a certain predicate.\r
-            </summary>\r
-            <param name="f">The filter delegate defining the predicate.</param>\r
-            <returns>The new indexed sorted collection.</returns>\r
-        </member>\r
-        <member name="M:C5.IIndexedSorted`1.Map``1(C5.Mapper{`0,``0},C5.IComparer{``0})">\r
-            <summary>\r
-            Create a new indexed sorted collection consisting of the results of\r
-            mapping all items of this list.\r
-            <exception cref="T:System.ArgumentException"/> if the map is not increasing over \r
-            the items of this collection (with respect to the two given comparison \r
-            relations).\r
-            </summary>\r
-            <param name="m">The delegate definging the map.</param>\r
-            <param name="c">The comparion relation to use for the result.</param>\r
-            <returns>The new sorted collection.</returns>\r
-        </member>\r
-        <member name="T:C5.IPersistentSorted`1">\r
-            <summary>\r
-            The type of a sorted collection with persistence\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.IPersistentSorted`1.Snapshot">\r
-            <summary>\r
-            Make a (read-only) snap shot of this collection.\r
-            </summary>\r
-            <returns>The snap shot.</returns>\r
-        </member>\r
-        <member name="T:C5.IDictionary`2">\r
-            <summary>\r
-            A dictionary with keys of type K and values of type V. Equivalent to a\r
-            finite partial map from K to V.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.IDictionary`2.Add(`0,`1)">\r
-            <summary>\r
-            Add a new (key, value) pair (a mapping) to the dictionary.\r
-            <exception cref="T:System.InvalidOperationException"/> if there already is an entry with the same key. \r
-            </summary>\r
-            <param name="key">Key to add</param>\r
-            <param name="val">Value to add</param>\r
-        </member>\r
-        <member name="M:C5.IDictionary`2.Remove(`0)">\r
-            <summary>\r
-            Remove an entry with a given key from the dictionary\r
-            </summary>\r
-            <param name="key">The key of the entry to remove</param>\r
-            <returns>True if an entry was found (and removed)</returns>\r
-        </member>\r
-        <member name="M:C5.IDictionary`2.Remove(`0,`1@)">\r
-            <summary>\r
-            Remove an entry with a given key from the dictionary and report its value.\r
-            </summary>\r
-            <param name="key">The key of the entry to remove</param>\r
-            <param name="val">On exit, the value of the removed entry</param>\r
-            <returns>True if an entry was found (and removed)</returns>\r
-        </member>\r
-        <member name="M:C5.IDictionary`2.Clear">\r
-            <summary>\r
-            Remove all entries from the dictionary\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.IDictionary`2.Contains(`0)">\r
-            <summary>\r
-            Check if there is an entry with a specified key\r
-            </summary>\r
-            <param name="key">The key to look for</param>\r
-            <returns>True if key was found</returns>\r
-        </member>\r
-        <member name="M:C5.IDictionary`2.Find(`0,`1@)">\r
-            <summary>\r
-            Check if there is an entry with a specified key and report the corresponding\r
-            value if found. This can be seen as a safe form of "val = this[key]".\r
-            </summary>\r
-            <param name="key">The key to look for</param>\r
-            <param name="val">On exit, the value of the entry</param>\r
-            <returns>True if key was found</returns>\r
-        </member>\r
-        <member name="M:C5.IDictionary`2.Update(`0,`1)">\r
-            <summary>\r
-            Look for a specific key in the dictionary and if found replace the value with a new one.\r
-            This can be seen as a non-adding version of "this[key] = val".\r
-            </summary>\r
-            <param name="key">The key to look for</param>\r
-            <param name="val">The new value</param>\r
-            <returns>True if key was found</returns>\r
-        </member>\r
-        <member name="M:C5.IDictionary`2.FindOrAdd(`0,`1@)">\r
-            <summary>\r
-            Look for a specific key in the dictionary. If found, report the corresponding value,\r
-            else add an entry with the key and the supplied value.\r
-            </summary>\r
-            <param name="key">The key to look for</param>\r
-            <param name="val">On entry the value to add if the key is not found.\r
-            On exit the value found if any.</param>\r
-            <returns>True if key was found</returns>\r
-        </member>\r
-        <member name="M:C5.IDictionary`2.UpdateOrAdd(`0,`1)">\r
-            <summary>\r
-            Update value in dictionary corresponding to key if found, else add new entry.\r
-            More general than "this[key] = val;" by reporting if key was found.\r
-            </summary>\r
-            <param name="key">The key to look for</param>\r
-            <param name="val">The value to add or replace with.</param>\r
-            <returns>True if key was found and value updated.</returns>\r
-        </member>\r
-        <member name="M:C5.IDictionary`2.Check">\r
-            <summary>\r
-            Check the integrity of the internal data structures of this dictionary.\r
-            Only avaliable in DEBUG builds???\r
-            </summary>\r
-            <returns>True if check does not fail.</returns>\r
-        </member>\r
-        <member name="P:C5.IDictionary`2.Item(`0)">\r
-            <summary>\r
-            Indexer for dictionary.\r
-            <exception cref="T:System.InvalidOperationException"/> if no entry is found. \r
-            </summary>\r
-            <value>The value corresponding to the key</value>\r
-        </member>\r
-        <member name="P:C5.IDictionary`2.Count">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>The number of entrues in the dictionary</value>\r
-        </member>\r
-        <member name="P:C5.IDictionary`2.IsReadOnly">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>True if dictionary is read  only</value>\r
-        </member>\r
-        <member name="P:C5.IDictionary`2.SyncRoot">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>The distinguished object to use for locking to synchronize multithreaded access</value>\r
-        </member>\r
-        <member name="P:C5.IDictionary`2.Keys">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>A collection containg the all the keys of the dictionary</value>\r
-        </member>\r
-        <member name="P:C5.IDictionary`2.Values">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>A collection containing all the values of the dictionary</value>\r
-        </member>\r
-        <member name="T:C5.ISortedDictionary`2">\r
-            <summary>\r
-            A dictionary with sorted keys.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.ISortedDictionary`2.Predecessor(`0)">\r
-            <summary>\r
-            Find the entry with the largest key less than a given key.\r
-            <exception cref="T:System.InvalidOperationException"/> if there is no such entry. \r
-            </summary>\r
-            <param name="key">The key to compare to</param>\r
-            <returns>The entry</returns>\r
-        </member>\r
-        <member name="M:C5.ISortedDictionary`2.Successor(`0)">\r
-            <summary>\r
-            Find the entry with the least key greater than a given key.\r
-            <exception cref="T:System.InvalidOperationException"/> if there is no such entry. \r
-            </summary>\r
-            <param name="key">The key to compare to</param>\r
-            <returns>The entry</returns>\r
-        </member>\r
-        <member name="M:C5.ISortedDictionary`2.WeakPredecessor(`0)">\r
-            <summary>\r
-            Find the entry with the largest key less than or equal to a given key.\r
-            <exception cref="T:System.InvalidOperationException"/> if there is no such entry. \r
-            </summary>\r
-            <param name="key">The key to compare to</param>\r
-            <returns>The entry</returns>\r
-        </member>\r
-        <member name="M:C5.ISortedDictionary`2.WeakSuccessor(`0)">\r
-            <summary>\r
-            Find the entry with the least key greater than or equal to a given key.\r
-            <exception cref="T:System.InvalidOperationException"/> if there is no such entry. \r
-            </summary>\r
-            <param name="key">The key to compare to</param>\r
-            <returns>The entry</returns>\r
-        </member>\r
-        <member name="T:C5.TreeBag`1">\r
-            <summary>\r
-            An implementation of Red-Black trees as an indexed, sorted collection with bag semantics,\r
-            cf. <a href="litterature.htm#CLRS">CLRS</a>. (<see cref="T:C5.TreeBag!1"/> for an \r
-            implementation with set semantics).\r
-            <br/>\r
-            The comparer (sorting order) may be either natural, because the item type is comparable \r
-            (generic: <see cref="T:C5.IComparable!1"/> or non-generic: System.IComparable) or it can\r
-            be external and supplied by the user in the constructor.\r
-            <br/>\r
-            Each distinct item is only kept in one place in the tree - together with the number\r
-            of times it is a member of the bag. Thus, if two items that are equal according\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.left(C5.TreeBag{`0}.Node)">\r
-            <summary>\r
-            Fetch the left child of n taking node-copying persistence into\r
-            account if relevant. \r
-            </summary>\r
-            <param name="n"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.#ctor">\r
-            <summary>\r
-            Create a red-black tree collection with natural comparer and item hasher.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.#ctor(C5.IComparer{`0})">\r
-            <summary>\r
-            Create a red-black tree collection with an external comparer (and natural item hasher,\r
-            assumed consistent).\r
-            </summary>\r
-            <param name="c">The external comparer</param>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.#ctor(C5.IComparer{`0},C5.IHasher{`0})">\r
-            <summary>\r
-            Create a red-black tree collection with an external comparer aand an external\r
-            item hasher, assumed consistent.\r
-            </summary>\r
-            <param name="c">The external comparer</param>\r
-            <param name="h">The external item hasher</param>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.GetEnumerator">\r
-            <summary>\r
-            Create an enumerator for this tree\r
-            </summary>\r
-            <returns>The enumerator</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.addIterative(`0,`0@,System.Boolean,System.Boolean@)">\r
-            <summary>\r
-            Add item to tree. If already there, return the found item in the second argument.\r
-            </summary>\r
-            <param name="item">Item to add</param>\r
-            <param name="founditem">item found</param>\r
-            <param name="update">whether item in node should be updated</param>\r
-            <param name="wasfound">true if found in bag, false if not found or tre is a set</param>\r
-            <returns>True if item was added</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Add(`0)">\r
-            <summary>\r
-            Add an item to this collection if possible. If this collection has set\r
-            semantics, the item will be added if not already in the collection. If\r
-            bag semantics, the item will always be added.\r
-            </summary>\r
-            <param name="item">The item to add.</param>\r
-            <returns>True if item was added.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.AddAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Add the elements from another collection to this collection. If this\r
-            collection has set semantics, only items not already in the collection\r
-            will be added.\r
-            </summary>\r
-            <param name="items">The items to add.</param>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.AddAll``1(System.Collections.Generic.IEnumerable{``0})">\r
-            <summary>\r
-            Add the elements from another collection with a more specialized item type \r
-            to this collection. If this\r
-            collection has set semantics, only items not already in the collection\r
-            will be added.\r
-            </summary>\r
-            <typeparam name="U">The type of items to add</typeparam>\r
-            <param name="items">The items to add</param>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.AddSorted(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Add all the items from another collection with an enumeration order that \r
-            is increasing in the items. <para>The idea is that the implementation may use\r
-            a faster algorithm to merge the two collections.</para>\r
-            <exception cref="T:System.ArgumentException"/> if the enumerated items turns out\r
-            not to be in increasing order.\r
-            </summary>\r
-            <param name="items">The collection to add.</param>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Contains(`0)">\r
-            <summary>\r
-            Check if this collection contains (an item equivalent to according to the\r
-            itemhasher) a particular value.\r
-            </summary>\r
-            <param name="item">The value to check for.</param>\r
-            <returns>True if the items is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Find(`0@)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, return in the ref argument (a\r
-            binary copy of) the actual value found.\r
-            </summary>\r
-            <param name="item">The value to look for.</param>\r
-            <returns>True if the items is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.FindOrAdd(`0@)">\r
-             <summary>\r
-             Find or add the item to the tree. If the tree does not contain\r
-             an item equivalent to this item add it, else return the exisiting\r
-             one in the ref argument. \r
-            \r
-             </summary>\r
-             <param name="item"></param>\r
-             <returns>True if item was found</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Update(`0)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, update the item in the collection \r
-            to with a binary copy of the supplied value. If the collection has bag semantics,\r
-            this updates all equivalent copies in\r
-            the collection.\r
-            </summary>\r
-            <param name="item">Value to update.</param>\r
-            <returns>True if the item was found and hence updated.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.UpdateOrAdd(`0)">\r
-             <summary>\r
-             Check if this collection contains an item equivalent according to the\r
-             itemhasher to a particular value. If so, update the item in the collection \r
-             to with a binary copy of the supplied value; else add the value to the collection. \r
-            \r
-             <p>NOTE: the bag implementation is currently wrong!</p>\r
-             </summary>\r
-             <param name="item">Value to add or update.</param>\r
-             <returns>True if the item was found and updated (hence not added).</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Remove(`0)">\r
-            <summary>\r
-            Remove a particular item from this collection. If the collection has bag\r
-            semantics only one copy equivalent to the supplied item is removed. \r
-            </summary>\r
-            <param name="item">The value to remove.</param>\r
-            <returns>True if the item was found (and removed).</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.RemoveWithReturn(`0@)">\r
-            <summary>\r
-            Remove a particular item from this collection if found. If the collection\r
-            has bag semantics only one copy equivalent to the supplied item is removed,\r
-            which one is implementation dependent. \r
-            If an item was removed, report a binary copy of the actual item removed in \r
-            the argument.\r
-            </summary>\r
-            <param name="item">The value to remove on input.</param>\r
-            <returns>True if the item was found (and removed).</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Clear">\r
-            <summary>\r
-            Remove all items from this collection.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.RemoveAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Remove all items in another collection from this one. If this collection\r
-            has bag semantics, take multiplicities into account.\r
-            </summary>\r
-            <param name="items">The items to remove.</param>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.RetainAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Remove all items not in some other collection from this one. If this collection\r
-            has bag semantics, take multiplicities into account.\r
-            </summary>\r
-            <param name="items">The items to retain.</param>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.ContainsAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Check if this collection contains all the values in another collection.\r
-            If this collection has bag semantics (<code>NoDuplicates==false</code>)\r
-            the check is made with respect to multiplicities, else multiplicities\r
-            are not taken into account.\r
-            </summary>\r
-            <param name="items">The </param>\r
-            <returns>True if all values in <code>items</code>is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.FindAll(C5.Filter{`0})">\r
-            <summary>\r
-            Create a new indexed sorted collection consisting of the items of this\r
-            indexed sorted collection satisfying a certain predicate.\r
-            </summary>\r
-            <param name="filter">The filter delegate defining the predicate.</param>\r
-            <returns>The new indexed sorted collection.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Map``1(C5.Mapper{`0,``0},C5.IComparer{``0})">\r
-            <summary>\r
-            Create a new indexed sorted collection consisting of the results of\r
-            mapping all items of this list.\r
-            <exception cref="T:System.ArgumentException"/> if the map is not increasing over \r
-            the items of this collection (with respect to the two given comparison \r
-            relations).\r
-            </summary>\r
-            <param name="mapper">The delegate definging the map.</param>\r
-            <param name="c">The comparion relation to use for the result.</param>\r
-            <returns>The new sorted collection.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.ContainsCount(`0)">\r
-            <summary>\r
-            Count the number of items of the collection equal to a particular value.\r
-            Returns 0 if and only if the value is not in the collection.\r
-            </summary>\r
-            <param name="item">The value to count.</param>\r
-            <returns>The number of copies found.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.RemoveAllCopies(`0)">\r
-            <summary>\r
-            Remove all items equivalent to a given value.\r
-            </summary>\r
-            <param name="item">The value to remove.</param>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.IndexOf(`0)">\r
-            <summary>\r
-            Searches for an item in the list going forwrds from the start.\r
-            </summary>\r
-            <param name="item">Item to search for.</param>\r
-            <returns>Index of item from start.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.LastIndexOf(`0)">\r
-            <summary>\r
-            Searches for an item in the list going backwords from the end.\r
-            </summary>\r
-            <param name="item">Item to search for.</param>\r
-            <returns>Index of of item from the end.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.RemoveAt(System.Int32)">\r
-            <summary>\r
-            Remove the item at a specific position of the list.\r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt;= the size of the collection.\r
-            </summary>\r
-            <param name="i">The index of the item to remove.</param>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.RemoveInterval(System.Int32,System.Int32)">\r
-            <summary>\r
-            Remove all items in an index interval.\r
-            <exception cref="T:System.IndexOutOfRangeException"/>???. \r
-            </summary>\r
-            <param name="start">The index of the first item to remove.</param>\r
-            <param name="count">The number of items to remove.</param>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Backwards">\r
-            <summary>\r
-            Create a collection containing the same items as this collection, but\r
-            whose enumerator will enumerate the items backwards. The new collection\r
-            will become invalid if the original is modified. Method typicaly used as in\r
-            <code>foreach (T x in coll.Backwards()) {...}</code>\r
-            </summary>\r
-            <returns>The backwards collection.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.FindMin">\r
-            <summary>\r
-            Find the current least item of this priority queue.\r
-            </summary>\r
-            <returns>The least item.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.DeleteMin">\r
-            <summary>\r
-            Remove the least item from this  priority queue.\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.FindMax">\r
-            <summary>\r
-            Find the current largest item of this priority queue.\r
-            </summary>\r
-            <returns>The largest item.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.DeleteMax">\r
-            <summary>\r
-            Remove the largest item from this  priority queue.\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Predecessor(`0)">\r
-            <summary>\r
-            Find the strict predecessor in the sorted collection of a particular value,\r
-            i.e. the largest item in the collection less than the supplied value.\r
-            <exception cref="T:System.InvalidOperationException"/> if no such element exists (the\r
-            supplied  value is less than or equal to the minimum of this collection.)\r
-            </summary>\r
-            <param name="item">The item to find the predecessor for.</param>\r
-            <returns>The predecessor.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.WeakPredecessor(`0)">\r
-            <summary>\r
-            Find the weak predecessor in the sorted collection of a particular value,\r
-            i.e. the largest item in the collection less than or equal to the supplied value.\r
-            <exception cref="T:System.InvalidOperationException"/> if no such element exists (the\r
-            supplied  value is less than the minimum of this collection.)\r
-            </summary>\r
-            <param name="item">The item to find the weak predecessor for.</param>\r
-            <returns>The weak predecessor.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Successor(`0)">\r
-            <summary>\r
-            Find the strict successor in the sorted collection of a particular value,\r
-            i.e. the least item in the collection greater than the supplied value.\r
-            <exception cref="T:System.InvalidOperationException"/> if no such element exists (the\r
-            supplied  value is greater than or equal to the maximum of this collection.)\r
-            </summary>\r
-            <param name="item">The item to find the successor for.</param>\r
-            <returns>The successor.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.WeakSuccessor(`0)">\r
-            <summary>\r
-            Find the weak successor in the sorted collection of a particular value,\r
-            i.e. the least item in the collection greater than or equal to the supplied value.\r
-            <exception cref="T:System.InvalidOperationException"/> if no such element exists (the\r
-            supplied  value is greater than the maximum of this collection.)\r
-            </summary>\r
-            <param name="item">The item to find the weak successor for.</param>\r
-            <returns>The weak successor.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.RangeFrom(`0)">\r
-            <summary>\r
-            Query this sorted collection for items greater than or equal to a supplied value.\r
-            </summary>\r
-            <param name="bot">The lower bound (inclusive).</param>\r
-            <returns>The result directed collection.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.RangeFromTo(`0,`0)">\r
-            <summary>\r
-            Query this sorted collection for items between two supplied values.\r
-            </summary>\r
-            <param name="bot">The lower bound (inclusive).</param>\r
-            <param name="top">The upper bound (exclusive).</param>\r
-            <returns>The result directed collection.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.RangeTo(`0)">\r
-            <summary>\r
-            Query this sorted collection for items less than a supplied value.\r
-            </summary>\r
-            <param name="top">The upper bound (exclusive).</param>\r
-            <returns>The result directed collection.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.RangeAll">\r
-            <summary>\r
-            Create a directed collection with the same items as this collection.\r
-            </summary>\r
-            <returns>The result directed collection.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Cut(System.IComparable{`0},`0@,System.Boolean@,`0@,System.Boolean@)">\r
-            <summary>\r
-            Perform a search in the sorted collection for the ranges in which a\r
-            non-decreasing function from the item type to <code>int</code> is\r
-            negative, zero respectively positive. If the supplied cut function is\r
-            not non-decreasing, the result of this call is undefined.\r
-            </summary>\r
-            <param name="c">The cut function <code>T</code> to <code>int</code>, given\r
-            as an <code>IComparable&lt;T&gt;</code> object, where the cut function is\r
-            the <code>c.CompareTo(T that)</code> method.</param>\r
-            <param name="low">Returns the largest item in the collection, where the\r
-            cut function is negative (if any).</param>\r
-            <param name="lowIsValid">True if the cut function is negative somewhere\r
-            on this collection.</param>\r
-            <param name="high">Returns the least item in the collection, where the\r
-            cut function is positive (if any).</param>\r
-            <param name="highIsValid">True if the cut function is positive somewhere\r
-            on this collection.</param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.CountFrom(`0)">\r
-            <summary>\r
-            Determine the number of items at or above a supplied threshold.\r
-            </summary>\r
-            <param name="bot">The lower bound (inclusive)</param>\r
-            <returns>The number of matcing items.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.CountFromTo(`0,`0)">\r
-            <summary>\r
-            Determine the number of items between two supplied thresholds.\r
-            </summary>\r
-            <param name="bot">The lower bound (inclusive)</param>\r
-            <param name="top">The upper bound (exclusive)</param>\r
-            <returns>The number of matcing items.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.CountTo(`0)">\r
-            <summary>\r
-            Determine the number of items below a supplied threshold.\r
-            </summary>\r
-            <param name="top">The upper bound (exclusive)</param>\r
-            <returns>The number of matcing items.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.RemoveRangeFrom(`0)">\r
-            <summary>\r
-            Remove all items of this collection above or at a supplied threshold.\r
-            </summary>\r
-            <param name="low">The lower threshold (inclusive).</param>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.RemoveRangeFromTo(`0,`0)">\r
-            <summary>\r
-            Remove all items of this collection between two supplied thresholds.\r
-            </summary>\r
-            <param name="low">The lower threshold (inclusive).</param>\r
-            <param name="hi">The upper threshold (exclusive).</param>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.RemoveRangeTo(`0)">\r
-            <summary>\r
-            Remove all items of this collection below a supplied threshold.\r
-            </summary>\r
-            <param name="hi">The upper threshold (exclusive).</param>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Dispose">\r
-            <summary>\r
-            If this tree is a snapshot, remove registration in base tree\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Finalize">\r
-            <summary>\r
-            If this tree is a snapshot, remove registration in base tree\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Snapshot">\r
-            <summary>\r
-            Make a (read-only) snap shot of this collection.\r
-            </summary>\r
-            <returns>The snap shot.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.minidump(C5.TreeBag{`0}.Node,System.String)">\r
-            <summary>\r
-            Display this node on the console, and recursively its subnodes.\r
-            </summary>\r
-            <param name="n">Node to display</param>\r
-            <param name="space">Indentation</param>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.dump">\r
-            <summary>\r
-            Print the tree structure to the console stdout.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.dump(System.String)">\r
-            <summary>\r
-            Print the tree structure to the console stdout.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.dump(System.String,System.String)">\r
-            <summary>\r
-            Display this tree on the console.\r
-            </summary>\r
-            <param name="msg">Identifying string of this call to dump</param>\r
-            <param name="err">Extra (error)message to include</param>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.massert(System.Boolean,C5.TreeBag{`0}.Node,System.String,System.IO.TextWriter)">\r
-            <summary>\r
-            Print warning m on o if b is false.\r
-            </summary>\r
-            <param name="b">Condition that should hold</param>\r
-            <param name="n">Place (used for id display)</param>\r
-            <param name="m">Message</param>\r
-            <param name="o">Output stream</param>\r
-            <returns>b</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Check(System.String)">\r
-            <summary>\r
-            Checks red-black invariant. Dumps tree to console if bad\r
-            </summary>\r
-            <param name="name">Title of dump</param>\r
-            <returns>false if invariant violation</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Check">\r
-            <summary>\r
-            Checks red-black invariant. Dumps tree to console if bad\r
-            </summary>\r
-            <returns>false if invariant violation</returns>\r
-        </member>\r
-        <member name="P:C5.TreeBag`1.Features">\r
-            <summary>\r
-            A debugging aid for making the selected compilation alternatives \r
-            available to the user. (To be removed when selection is finally fixed\r
-            for production version).\r
-            </summary>\r
-        </member>\r
-        <member name="P:C5.TreeBag`1.AllowsDuplicates">\r
-            <summary></summary>\r
-            <value>True since this collection has bag semantics.</value>\r
-        </member>\r
-        <member name="P:C5.TreeBag`1.ContainsSpeed">\r
-            <summary>\r
-            The value is symbolic indicating the type of asymptotic complexity\r
-            in terms of the size of this collection (worst-case or amortized as\r
-            relevant).\r
-            </summary>\r
-            <value>Speed.Log</value>\r
-        </member>\r
-        <member name="P:C5.TreeBag`1.Item(System.Int32)">\r
-            <summary>\r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt;= the size of the collection.\r
-            </summary>\r
-            <value>The i'th item of this list.</value>\r
-            <param name="i">the index to lookup</param>\r
-        </member>\r
-        <member name="P:C5.TreeBag`1.Item(System.Int32,System.Int32)">\r
-            <summary>\r
-            <exception cref="T:System.IndexOutOfRangeException"/>.\r
-            </summary>\r
-            <value>The directed collection of items in a specific index interval.</value>\r
-            <param name="start">The low index of the interval (inclusive).</param>\r
-            <param name="end">The high index of the interval (exclusive).</param>\r
-        </member>\r
-        <member name="P:C5.TreeBag`1.Comparer">\r
-            <summary>\r
-            The comparer object supplied at creation time for this collection\r
-            </summary>\r
-            <value>The comparer</value>\r
-        </member>\r
-        <member name="T:C5.TreeBag`1.Feature">\r
-            <summary>\r
-            A debugging aid for making the selected compilation alternatives \r
-            available to the user. (To be removed when selection is finally fixed\r
-            for production version).\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.TreeBag`1.Feature.Dummy">\r
-            <summary>\r
-            Nothing\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.TreeBag`1.Feature.NodeCopyPersistence">\r
-            <summary>\r
-            Node copy persistence as explained in <a href="litterature.htm#Tarjan1">Tarjan1</a>\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.TreeBag`1.Feature.Sizes">\r
-            <summary>\r
-            Maintain sub tree sizes\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.TreeBag`1.Feature.Heights">\r
-            <summary>\r
-            Maintain precise node heights\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.TreeBag`1.Feature.Ranks">\r
-            <summary>\r
-            Maintain node ranks (~ black height)\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.TreeBag`1.Feature.Traceid">\r
-            <summary>\r
-            Maintain unique ids on tree nodes.\r
-            </summary>\r
-        </member>\r
-        <member name="T:C5.TreeBag`1.Node">\r
-            <summary>\r
-            The type of node in a Red-Black binary tree\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Node.update(C5.TreeBag{`0}.Node@,System.Boolean,C5.TreeBag{`0}.Node,System.Int32,System.Int32)">\r
-            <summary>\r
-            Update a child pointer\r
-            </summary>\r
-            <param name="cursor"></param>\r
-            <param name="leftnode"></param>\r
-            <param name="child"></param>\r
-            <param name="maxsnapid"></param>\r
-            <param name="generation"></param>\r
-            <returns>True if node was *copied*</returns>\r
-        </member>\r
-        <member name="T:C5.TreeBag`1.Enumerator">\r
-            <summary>\r
-            An enumerator for a red-black tree collection. Based on an explicit stack\r
-            of subtrees waiting to be enumerated. Currently only used for the tree set \r
-            enumerators (tree bag enumerators use an iterator block based enumerator).\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Enumerator.#ctor(C5.TreeBag{`0})">\r
-            <summary>\r
-            Create a tree enumerator\r
-            </summary>\r
-            <param name="tree">The red-black tree to enumerate</param>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Enumerator.MoveNext">\r
-            <summary>\r
-            Move enumerator to next item in tree, or the first item if\r
-            this is the first call to MoveNext. \r
-            <exception cref="T:System.InvalidOperationException"/> if underlying tree was modified.\r
-            </summary>\r
-            <returns>True if enumerator is valid now</returns>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Enumerator.Dispose">\r
-            <summary>\r
-            Call Dispose(true) and then suppress finalization of this enumerator.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Enumerator.Dispose(System.Boolean)">\r
-            <summary>\r
-            Remove the internal data (notably the stack array).\r
-            </summary>\r
-            <param name="disposing">True if called from Dispose(),\r
-            false if called from the finalizer</param>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Enumerator.Finalize">\r
-            <summary>\r
-            Finalizer for enumeratir\r
-            </summary>\r
-        </member>\r
-        <member name="P:C5.TreeBag`1.Enumerator.Current">\r
-            <summary>\r
-            Undefined if enumerator is not valid (MoveNext hash been called returning true)\r
-            </summary>\r
-            <value>The current item of the enumerator.</value>\r
-        </member>\r
-        <member name="T:C5.TreeBag`1.SnapEnumerator">\r
-            <summary>\r
-            An enumerator for a snapshot of a node copy persistent red-black tree\r
-            collection.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.SnapEnumerator.#ctor(C5.TreeBag{`0})">\r
-            <summary>\r
-            Creta an enumerator for a snapshot of a node copy persistent red-black tree\r
-            collection\r
-            </summary>\r
-            <param name="tree">The snapshot</param>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.SnapEnumerator.MoveNext">\r
-            <summary>\r
-            Move enumerator to next item in tree, or the first item if\r
-            this is the first call to MoveNext. \r
-            <exception cref="T:System.InvalidOperationException"/> if underlying tree was modified.\r
-            </summary>\r
-            <returns>True if enumerator is valid now</returns>\r
-        </member>\r
-        <member name="P:C5.TreeBag`1.SnapEnumerator.Current">\r
-            <summary>\r
-            Undefined if enumerator is not valid (MoveNext hash been called returning true)\r
-            </summary>\r
-            <value>The current value of the enumerator.</value>\r
-        </member>\r
-        <member name="M:C5.TreeBag`1.Range.Enumerator.MoveNext">\r
-            <summary>\r
-            Move enumerator to next item in tree, or the first item if\r
-            this is the first call to MoveNext. \r
-            <exception cref="T:System.InvalidOperationException"/> if underlying tree was modified.\r
-            </summary>\r
-            <returns>True if enumerator is valid now</returns>\r
-        </member>\r
-        <member name="P:C5.TreeBag`1.Range.Enumerator.Current">\r
-            <summary>\r
-            Undefined if enumerator is not valid (MoveNext hash been called returning true)\r
-            </summary>\r
-            <value>The current value of the enumerator.</value>\r
-        </member>\r
-        <member name="T:C5.TreeDictionary`2">\r
-            <summary>\r
-            A sorted generic dictionary based on a red-black tree set.\r
-            </summary>\r
-        </member>\r
-        <member name="T:C5.DictionaryBase`2">\r
-            <summary>\r
-            A base class for implementing a dictionary based on a set collection implementation.\r
-            <p>See the source code for <see cref="T:C5.HashDictionary!2"/> for an example</p>\r
-            \r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.DictionaryBase`2.pairs">\r
-            <summary>\r
-            The set collection of entries underlying this dictionary implementation\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.DictionaryBase`2.Add(`0,`1)">\r
-            <summary>\r
-            Add a new (key, value) pair (a mapping) to the dictionary.\r
-            <exception cref="T:System.InvalidOperationException"/> if there already is an entry with the same key. \r
-            </summary>\r
-            <param name="key">Key to add</param>\r
-            <param name="val">Value to add</param>\r
-        </member>\r
-        <member name="M:C5.DictionaryBase`2.Remove(`0)">\r
-            <summary>\r
-            Remove an entry with a given key from the dictionary\r
-            </summary>\r
-            <param name="key">The key of the entry to remove</param>\r
-            <returns>True if an entry was found (and removed)</returns>\r
-        </member>\r
-        <member name="M:C5.DictionaryBase`2.Remove(`0,`1@)">\r
-            <summary>\r
-            Remove an entry with a given key from the dictionary and report its value.\r
-            </summary>\r
-            <param name="key">The key of the entry to remove</param>\r
-            <param name="val">On exit, the value of the removed entry</param>\r
-            <returns>True if an entry was found (and removed)</returns>\r
-        </member>\r
-        <member name="M:C5.DictionaryBase`2.Clear">\r
-            <summary>\r
-            Remove all entries from the dictionary\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.DictionaryBase`2.Contains(`0)">\r
-            <summary>\r
-            Check if there is an entry with a specified key\r
-            </summary>\r
-            <param name="key">The key to look for</param>\r
-            <returns>True if key was found</returns>\r
-        </member>\r
-        <member name="M:C5.DictionaryBase`2.Find(`0,`1@)">\r
-            <summary>\r
-            Check if there is an entry with a specified key and report the corresponding\r
-            value if found. This can be seen as a safe form of "val = this[key]".\r
-            </summary>\r
-            <param name="key">The key to look for</param>\r
-            <param name="val">On exit, the value of the entry</param>\r
-            <returns>True if key was found</returns>\r
-        </member>\r
-        <member name="M:C5.DictionaryBase`2.Update(`0,`1)">\r
-            <summary>\r
-            Look for a specific key in the dictionary and if found replace the value with a new one.\r
-            This can be seen as a non-adding version of "this[key] = val".\r
-            </summary>\r
-            <param name="key">The key to look for</param>\r
-            <param name="val">The new value</param>\r
-            <returns>True if key was found</returns>\r
-        </member>\r
-        <member name="M:C5.DictionaryBase`2.FindOrAdd(`0,`1@)">\r
-            <summary>\r
-            Look for a specific key in the dictionary. If found, report the corresponding value,\r
-            else add an entry with the key and the supplied value.\r
-            </summary>\r
-            <param name="key">The key to look for</param>\r
-            <param name="val">On entry the value to add if the key is not found.\r
-            On exit the value found if any.</param>\r
-            <returns>True if key was found</returns>\r
-        </member>\r
-        <member name="M:C5.DictionaryBase`2.UpdateOrAdd(`0,`1)">\r
-            <summary>\r
-            Update value in dictionary corresponding to key if found, else add new entry.\r
-            More general than "this[key] = val;" by reporting if key was found.\r
-            </summary>\r
-            <param name="key">The key to look for</param>\r
-            <param name="val">The value to add or replace with.</param>\r
-            <returns>True if entry was updated.</returns>\r
-        </member>\r
-        <member name="M:C5.DictionaryBase`2.Check">\r
-            <summary>\r
-            Check the integrity of the internal data structures of this dictionary.\r
-            Only avaliable in DEBUG builds???\r
-            </summary>\r
-            <returns>True if check does not fail.</returns>\r
-        </member>\r
-        <member name="M:C5.DictionaryBase`2.GetEnumerator">\r
-            <summary>\r
-            Create an enumerator for the collection of entries of the dictionary\r
-            </summary>\r
-            <returns>The enumerator</returns>\r
-        </member>\r
-        <member name="P:C5.DictionaryBase`2.Count">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>The number of entrues in the dictionary</value>\r
-        </member>\r
-        <member name="P:C5.DictionaryBase`2.SyncRoot">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>A distinguished object to use for locking to synchronize multithreaded access</value>\r
-        </member>\r
-        <member name="P:C5.DictionaryBase`2.Keys">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>A collection containg the all the keys of the dictionary</value>\r
-        </member>\r
-        <member name="P:C5.DictionaryBase`2.Values">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>A collection containing all the values of the dictionary</value>\r
-        </member>\r
-        <member name="P:C5.DictionaryBase`2.Item(`0)">\r
-            <summary>\r
-            Indexer for dictionary.\r
-            <exception cref="T:System.InvalidOperationException"/> if no entry is found. \r
-            </summary>\r
-            <value>The value corresponding to the key</value>\r
-        </member>\r
-        <member name="P:C5.DictionaryBase`2.IsReadOnly">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>True if dictionary is read  only</value>\r
-        </member>\r
-        <member name="M:C5.TreeDictionary`2.#ctor">\r
-            <summary>\r
-            Create a red-black tree dictionary using the natural comparer for keys.\r
-            <exception cref="T:System.ArgumentException"/> if the key type K is not comparable.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeDictionary`2.#ctor(C5.IComparer{`0})">\r
-            <summary>\r
-            Create a red-black tree dictionary using an external comparer for keys.\r
-            </summary>\r
-            <param name="c">The external comparer</param>\r
-        </member>\r
-        <member name="M:C5.TreeDictionary`2.Predecessor(`0)">\r
-            <summary>\r
-            Get the entry in the dictionary whose key is the\r
-            predecessor of a specified key.\r
-            </summary>\r
-            <param name="key">The key</param>\r
-            <returns>The entry</returns>\r
-        </member>\r
-        <member name="M:C5.TreeDictionary`2.WeakPredecessor(`0)">\r
-            <summary>\r
-            Get the entry in the dictionary whose key is the\r
-            weak predecessor of a specified key.\r
-            </summary>\r
-            <param name="key">The key</param>\r
-            <returns>The entry</returns>\r
-        </member>\r
-        <member name="M:C5.TreeDictionary`2.Successor(`0)">\r
-            <summary>\r
-            Get the entry in the dictionary whose key is the\r
-            successor of a specified key.\r
-            </summary>\r
-            <param name="key">The key</param>\r
-            <returns>The entry</returns>\r
-        </member>\r
-        <member name="M:C5.TreeDictionary`2.WeakSuccessor(`0)">\r
-            <summary>\r
-            Get the entry in the dictionary whose key is the\r
-            weak successor of a specified key.\r
-            </summary>\r
-            <param name="key">The key</param>\r
-            <returns>The entry</returns>\r
-        </member>\r
-        <member name="M:C5.TreeDictionary`2.Snapshot">\r
-            <summary>\r
-            Make a snapshot of the current state of this dictionary\r
-            </summary>\r
-            <returns>The snapshot</returns>\r
-        </member>\r
-        <member name="T:C5.HashedLinkedList`1">\r
-            <summary>\r
-            A list collection based on a doubly linked list data structure with \r
-            a hash index mapping item to node.\r
-            </summary>\r
-        </member>\r
-        <member name="T:C5.LinkedList`1">\r
-            <summary>\r
-            A list collection class based on a doubly linked list data structure.\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.LinkedList`1.fIFO">\r
-            <summary>\r
-            IExtensible.Add(T) always does AddLast(T), fIFO determines \r
-            if T Remove() does RemoveFirst() or RemoveLast()\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.LinkedList`1.maintaintags">\r
-            <summary>\r
-            True if we maintain tags for node ordering (false for plain linked list, true for hashed linked list).\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.LinkedList`1.startsentinel">\r
-            <summary>\r
-            Node to the left of first node \r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.LinkedList`1.endsentinel">\r
-            <summary>\r
-            Node to the right of last node\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.LinkedList`1.offset">\r
-            <summary>\r
-            Offset of this view in underlying list\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.LinkedList`1.underlying">\r
-            <summary>\r
-            underlying list of theis view (or null)\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.updatecheck">\r
-            <summary>\r
-            Check if it is valid to perform updates and increment stamp.\r
-            <exception cref="T:System.InvalidOperationException"/> if check fails.\r
-            <br/>This method should be called at the start of any public modifying methods.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.modifycheck">\r
-            <summary>\r
-            Check if we are a view that the underlyinglist has only been updated through us.\r
-            <exception cref="T:System.InvalidOperationException"/> if check fails.\r
-            <br/>\r
-            This method should be called from enumerators etc to guard against \r
-            modification of the base collection.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.modifycheck(System.Int32)">\r
-            <summary>\r
-            Check that the list has not been updated since a particular time.\r
-            <exception cref="T:System.InvalidOperationException"/> if check fails.\r
-            </summary>\r
-            <param name="stamp">The stamp indicating the time.</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.insertNode(C5.LinkedList{`0}.Node,C5.LinkedList{`0}.Node)">\r
-            <summary>\r
-            Insert a Node before another one. Unchecked internal version.\r
-            </summary>\r
-            <param name="succ">The successor to be</param>\r
-            <param name="newnode">Node to insert</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.remove(C5.LinkedList{`0}.Node)">\r
-            <summary>\r
-            Remove a node. Unchecked internal version.\r
-            </summary>\r
-            <param name="node">Node to remove</param>\r
-            <returns>The item of the removed node</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.gettaggroup(C5.LinkedList{`0}.Node,C5.LinkedList{`0}.Node,System.Int32@,System.Int32@)">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <param name="pred"></param>\r
-            <param name="succ"></param>\r
-            <param name="lowbound"></param>\r
-            <param name="highbound"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.settag(C5.LinkedList{`0}.Node)">\r
-            <summary>\r
-            Put a tag on a node (already inserted in the list). Split taggroups and renumber as \r
-            necessary.\r
-            </summary>\r
-            <param name="node">The node to tag</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.removefromtaggroup(C5.LinkedList{`0}.Node)">\r
-            <summary>\r
-            Remove a node from its taggroup.\r
-            <br/> When this is called, node must already have been removed from the underlying list\r
-            </summary>\r
-            <param name="node">The node to remove</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.splittaggroup(C5.LinkedList{`0}.TagGroup)">\r
-            <summary>\r
-            Split a tag group to make rom for more tags.\r
-            </summary>\r
-            <param name="taggroup">The tag group</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.#ctor(C5.IHasher{`0})">\r
-            <summary>\r
-            Create a linked list with en external item hasher\r
-            </summary>\r
-            <param name="itemhasher">The external hasher</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.#ctor">\r
-            <summary>\r
-            Create a linked list with the nmatural item hasher\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.get(System.Int32)">\r
-            <summary>\r
-            Return the node at position n\r
-            </summary>\r
-            <param name="n"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Insert(System.Int32,`0)">\r
-            <summary>\r
-            Insert an item at a specific index location in this list. \r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt; the size of the collection.</summary>\r
-            <param name="i">The index at which to insert.</param>\r
-            <param name="item">The item to insert.</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.InsertAll(System.Int32,System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Insert into this list all items from an enumerable collection starting \r
-            at a particular index.\r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt; the size of the collection.\r
-            </summary>\r
-            <param name="i">Index to start inserting at</param>\r
-            <param name="items">Items to insert</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.InsertBefore(`0,`0)">\r
-            <summary>\r
-            Insert an item right before the first occurrence of some target item.\r
-            <exception cref="T:System.ArgumentException"/> if target   is not found\r
-            </summary>\r
-            <param name="item">The item to insert.</param>\r
-            <param name="target">The target before which to insert.</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.InsertAfter(`0,`0)">\r
-            <summary>\r
-            Insert an item right after the last(???) occurrence of some target item.\r
-            <exception cref="T:System.ArgumentException"/> if target   is not found\r
-            </summary>\r
-            <param name="item">The item to insert.</param>\r
-            <param name="target">The target after which to insert.</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.InsertFirst(`0)">\r
-            <summary>\r
-            Insert an item at the front of this list.\r
-            </summary>\r
-            <param name="item">The item to insert.</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.InsertLast(`0)">\r
-            <summary>\r
-            Insert an item at the back of this list.\r
-            </summary>\r
-            <param name="item">The item to insert.</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Map``1(C5.Mapper{`0,``0})">\r
-            <summary>\r
-            Create a new list consisting of the results of mapping all items of this\r
-            list.\r
-            </summary>\r
-            <param name="mapper">The delegate definging the map.</param>\r
-            <returns>The new list.</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Map``1(C5.Mapper{`0,``0},C5.IHasher{``0})">\r
-            <summary>\r
-            Create a new list consisting of the results of mapping all items of this\r
-            list. The new list will use a specified hasher for the item type.\r
-            </summary>\r
-            <typeparam name="V">The type of items of the new list</typeparam>\r
-            <param name="mapper">The delegate defining the map.</param>\r
-            <param name="hasher">The hasher to use for the new list</param>\r
-            <returns>The new list.</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Remove">\r
-            <summary>\r
-            Remove one item from the list: from the front if <code>FIFO</code>\r
-            is true, else from the back.\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is empty.\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.RemoveFirst">\r
-            <summary>\r
-            Remove one item from the front of the list.\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is empty.\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.RemoveLast">\r
-            <summary>\r
-            Remove one item from the back of the list.\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is empty.\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.View(System.Int32,System.Int32)">\r
-            <summary>\r
-            Create a list view on this list. \r
-            <exception cref="T:System.ArgumentOutOfRangeException"/> if the start or count is negative\r
-            <exception cref="T:System.ArgumentException"/> if the range does not fit within list.\r
-            </summary>\r
-            <param name="start">The index in this list of the start of the view.</param>\r
-            <param name="count">The size of the view.</param>\r
-            <returns>The new list view.</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Slide(System.Int32)">\r
-            <summary>\r
-            Slide this list view along the underlying list.\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is not a view.\r
-            <exception cref="T:System.ArgumentOutOfRangeException"/> if the operation\r
-            would bring either end of the view outside the underlying list.\r
-            </summary>\r
-            <param name="offset">The signed amount to slide: positive to slide\r
-            towards the end.</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Slide(System.Int32,System.Int32)">\r
-            <summary>\r
-            Slide this list view along the underlying list, changing its size.\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is not a view.\r
-            <exception cref="T:System.ArgumentOutOfRangeException"/> if the operation\r
-            would bring either end of the view outside the underlying list.\r
-            </summary>\r
-            <param name="offset">The signed amount to slide: positive to slide\r
-            towards the end.</param>\r
-            <param name="size">The new size of the view.</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Reverse">\r
-            <summary>\r
-            Reverse the list so the items are in the opposite sequence order.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Reverse(System.Int32,System.Int32)">\r
-            <summary>\r
-            Reverst part of the list so the items are in the opposite sequence order.\r
-            <exception cref="T:System.ArgumentException"/> if the count is negative.\r
-            <exception cref="T:System.ArgumentOutOfRangeException"/> if the part does not fit\r
-            into the list.\r
-            </summary>\r
-            <param name="start">The index of the start of the part to reverse.</param>\r
-            <param name="count">The size of the part to reverse.</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.IsSorted(C5.IComparer{`0})">\r
-            <summary>\r
-            Check if this list is sorted according to a specific sorting order.\r
-            </summary>\r
-            <param name="c">The comparer defining the sorting order.</param>\r
-            <returns>True if the list is sorted, else false.</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Sort(C5.IComparer{`0})">\r
-            <summary>\r
-            Sort the items of the list according to a specific sorting order.\r
-            The sorting is stable.\r
-            </summary>\r
-            <param name="c">The comparer defining the sorting order.</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Shuffle">\r
-            <summary>\r
-            Randonmly shuffle the items of this list. \r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Shuffle(System.Random)">\r
-            <summary>\r
-            Shuffle the items of this list according to a specific random source.\r
-            </summary>\r
-            <param name="rnd">The random source.</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.IndexOf(`0)">\r
-            <summary>\r
-            Searches for an item in the list going forwrds from the start.\r
-            </summary>\r
-            <param name="item">Item to search for.</param>\r
-            <returns>Index of item from start.</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.LastIndexOf(`0)">\r
-            <summary>\r
-            Searches for an item in the list going backwords from the end.\r
-            </summary>\r
-            <param name="item">Item to search for.</param>\r
-            <returns>Index of of item from the end.</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.RemoveAt(System.Int32)">\r
-            <summary>\r
-            Remove the item at a specific position of the list.\r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt;= the size of the collection.\r
-            </summary>\r
-            <param name="i">The index of the item to remove.</param>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.RemoveInterval(System.Int32,System.Int32)">\r
-            <summary>\r
-            Remove all items in an index interval.\r
-            <exception cref="T:System.IndexOutOfRangeException"/>???. \r
-            </summary>\r
-            <param name="start">The index of the first item to remove.</param>\r
-            <param name="count">The number of items to remove.</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Backwards">\r
-            <summary>\r
-            Create a collection containing the same items as this collection, but\r
-            whose enumerator will enumerate the items backwards. The new collection\r
-            will become invalid if the original is modified. Method typicaly used as in\r
-            <code>foreach (T x in coll.Backwards()) {...}</code>\r
-            </summary>\r
-            <returns>The backwards collection.</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Contains(`0)">\r
-            <summary>\r
-            Check if this collection contains (an item equivalent to according to the\r
-            itemhasher) a particular value.\r
-            </summary>\r
-            <param name="item">The value to check for.</param>\r
-            <returns>True if the items is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Find(`0@)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, return in the ref argument (a\r
-            binary copy of) the actual value found.\r
-            </summary>\r
-            <param name="item">The value to look for.</param>\r
-            <returns>True if the items is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Update(`0)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, update the item in the collection \r
-            to with a binary copy of the supplied value. Will update a single item.\r
-            </summary>\r
-            <param name="item">Value to update.</param>\r
-            <returns>True if the item was found and hence updated.</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.FindOrAdd(`0@)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, return in the ref argument (a\r
-            binary copy of) the actual value found. Else, add the item to the collection.\r
-            </summary>\r
-            <param name="item">The value to look for.</param>\r
-            <returns>True if the item was found (hence not added).</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.UpdateOrAdd(`0)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, update the item in the collection \r
-            to with a binary copy of the supplied value; else add the value to the collection. \r
-            </summary>\r
-            <param name="item">Value to add or update.</param>\r
-            <returns>True if the item was updated (hence not added).</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Remove(`0)">\r
-            <summary>\r
-            Remove a particular item from this collection. Since the collection has bag\r
-            semantics only one copy equivalent to the supplied item is removed. \r
-            </summary>\r
-            <param name="item">The value to remove.</param>\r
-            <returns>True if the item was found (and removed).</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.RemoveWithReturn(`0@)">\r
-            <summary>\r
-            Remove a particular item from this collection if found (only one copy). \r
-            If an item was removed, report a binary copy of the actual item removed in \r
-            the argument.\r
-            </summary>\r
-            <param name="item">The value to remove on input.</param>\r
-            <returns>True if the item was found (and removed).</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.RemoveAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Remove all items in another collection from this one, take multiplicities into account.\r
-            </summary>\r
-            <param name="items">The items to remove.</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Clear">\r
-            <summary>\r
-            Remove all items from this collection.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.RetainAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Remove all items not in some other collection from this one, take multiplicities into account.\r
-            </summary>\r
-            <param name="items">The items to retain.</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.ContainsAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Check if this collection contains all the values in another collection\r
-            with respect to multiplicities.\r
-            </summary>\r
-            <param name="items">The </param>\r
-            <returns>True if all values in <code>items</code>is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.FindAll(C5.Filter{`0})">\r
-            <summary>\r
-            Create a new list consisting of the items of this list satisfying a \r
-            certain predicate.\r
-            </summary>\r
-            <param name="filter">The filter delegate defining the predicate.</param>\r
-            <returns>The new list.</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.ContainsCount(`0)">\r
-            <summary>\r
-            Count the number of items of the collection equal to a particular value.\r
-            Returns 0 if and only if the value is not in the collection.\r
-            </summary>\r
-            <param name="item">The value to count.</param>\r
-            <returns>The number of copies found.</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.RemoveAllCopies(`0)">\r
-            <summary>\r
-            Remove all items equivalent to a given value.\r
-            </summary>\r
-            <param name="item">The value to remove.</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.GetEnumerator">\r
-            <summary>\r
-            Create an enumerator for the collection\r
-            </summary>\r
-            <returns>The enumerator</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Add(`0)">\r
-            <summary>\r
-            Add an item to this collection if possible. \r
-            </summary>\r
-            <param name="item">The item to add.</param>\r
-            <returns>True.</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.AddAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Add the elements from another collection to this collection. \r
-            </summary>\r
-            <param name="items">The items to add.</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.AddAll``1(System.Collections.Generic.IEnumerable{``0})">\r
-            <summary>\r
-            Add the elements from another collection with a more specialized item type \r
-            to this collection. \r
-            </summary>\r
-            <typeparam name="U">The type of items to add</typeparam>\r
-            <param name="items">The items to add</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Push(`0)">\r
-            <summary>\r
-            Push an item to the top of the stack.\r
-            </summary>\r
-            <param name="item">The item</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Pop">\r
-            <summary>\r
-            Pop the item at the top of the stack from the stack.\r
-            </summary>\r
-            <returns>The popped item.</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.EnQueue(`0)">\r
-            <summary>\r
-            Enqueue an item at the back of the queue. \r
-            </summary>\r
-            <param name="item">The item</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.DeQueue">\r
-            <summary>\r
-            Dequeue an item from the front of the queue.\r
-            </summary>\r
-            <returns>The item</returns>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Check">\r
-            <summary>\r
-            Check the sanity of this list\r
-            </summary>\r
-            <returns>true if sane</returns>\r
-        </member>\r
-        <member name="P:C5.LinkedList`1.First">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is empty.\r
-            </summary>\r
-            <value>The first item in this list.</value>\r
-        </member>\r
-        <member name="P:C5.LinkedList`1.Last">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is empty.\r
-            </summary>\r
-            <value>The last item in this list.</value>\r
-        </member>\r
-        <member name="P:C5.LinkedList`1.FIFO">\r
-            <summary>\r
-            Since <code>Add(T item)</code> always add at the end of the list,\r
-            this describes if list has FIFO or LIFO semantics.\r
-            </summary>\r
-            <value>True if the <code>Remove()</code> operation removes from the\r
-            start of the list, false if it removes from the end.</value>\r
-        </member>\r
-        <member name="P:C5.LinkedList`1.Item(System.Int32)">\r
-            <summary>\r
-            On this list, this indexer is read/write.\r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt;= the size of the collection.\r
-            </summary>\r
-            <value>The i'th item of this list.</value>\r
-            <param name="index">The index of the item to fetch or store.</param>\r
-        </member>\r
-        <member name="P:C5.LinkedList`1.Underlying">\r
-            <summary>\r
-            Null if this list is not a view.\r
-            </summary>\r
-            <value>Underlying list for view.</value>\r
-        </member>\r
-        <member name="P:C5.LinkedList`1.Offset">\r
-            <summary>\r
-            </summary>\r
-            <value>Offset for this list view or 0 for a underlying list.</value>\r
-        </member>\r
-        <member name="P:C5.LinkedList`1.Item(System.Int32,System.Int32)">\r
-            <summary>\r
-            <exception cref="T:System.IndexOutOfRangeException"/>.\r
-            </summary>\r
-            <value>The directed collection of items in a specific index interval.</value>\r
-            <param name="start">The low index of the interval (inclusive).</param>\r
-            <param name="count">The size of the range.</param>\r
-        </member>\r
-        <member name="P:C5.LinkedList`1.ContainsSpeed">\r
-            <summary>\r
-            The value is symbolic indicating the type of asymptotic complexity\r
-            in terms of the size of this collection (worst-case or amortized as\r
-            relevant).\r
-            </summary>\r
-            <value>Speed.Linear</value>\r
-        </member>\r
-        <member name="P:C5.LinkedList`1.Count">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>The number of items in this collection</value>\r
-        </member>\r
-        <member name="P:C5.LinkedList`1.AllowsDuplicates">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>True since this collection has bag semantics.</value>\r
-        </member>\r
-        <member name="T:C5.LinkedList`1.Node">\r
-            <summary>\r
-            An individual cell in the linked list\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.LinkedList`1.Node.prev">\r
-            <summary>\r
-            Previous-node reference\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.LinkedList`1.Node.next">\r
-            <summary>\r
-            Next-node reference\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.LinkedList`1.Node.item">\r
-            <summary>\r
-            Node item\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Node.#ctor(`0)">\r
-            <summary>\r
-            Create node\r
-            </summary>\r
-            <param name="item">Item to insert</param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Node.#ctor(`0,C5.LinkedList{`0}.Node,C5.LinkedList{`0}.Node)">\r
-            <summary>\r
-            Create node, specifying predecessor and successor\r
-            </summary>\r
-            <param name="item"></param>\r
-            <param name="prev"></param>\r
-            <param name="next"></param>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.Node.ToString">\r
-            <summary>\r
-            Pretty print node\r
-            </summary>\r
-            <returns>Formatted node</returns>\r
-        </member>\r
-        <member name="T:C5.LinkedList`1.TagGroup">\r
-            <summary>\r
-            A group of nodes with the same high tag. Purpose is to be\r
-            able to tell the sequence order of two nodes without having to scan through\r
-            the list.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.LinkedList`1.TagGroup.ToString">\r
-            <summary>\r
-            Pretty print a tag group\r
-            </summary>\r
-            <returns>Formatted tag group</returns>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.#ctor(C5.IHasher{`0})">\r
-            <summary>\r
-            Create a hashed linked list with an external item hasher.\r
-            </summary>\r
-            <param name="itemhasher">The external hasher</param>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.#ctor">\r
-            <summary>\r
-            Create a hashed linked list with the natural item hasher.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.Insert(System.Int32,`0)">\r
-            <summary>\r
-            Insert an item at a specific index location in this list. \r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt; the size of the collection.</summary>\r
-            <exception cref="T:System.InvalidOperationException"/> if  the item is \r
-            already in the list.\r
-            <param name="i">The index at which to insert.</param>\r
-            <param name="item">The item to insert.</param>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.InsertAll(System.Int32,System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Insert into this list all items from an enumerable collection starting \r
-            at a particular index.\r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt; the size of the collection.\r
-            <exception cref="T:System.InvalidOperationException"/> if one of the items to insert is\r
-            already in the list.\r
-            </summary>\r
-            <param name="i">Index to start inserting at</param>\r
-            <param name="items">Items to insert</param>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.InsertBefore(`0,`0)">\r
-            <summary>\r
-            Insert an item right before the first occurrence of some target item.\r
-            <exception cref="T:System.ArgumentException"/> if target   is not found\r
-            <exception cref="T:System.InvalidOperationException"/> if the item is \r
-            already in the list.\r
-            </summary>\r
-            <param name="item">The item to insert.</param>\r
-            <param name="target">The target before which to insert.</param>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.InsertAfter(`0,`0)">\r
-            <summary>\r
-            Insert an item right after the last(???) occurrence of some target item.\r
-            <exception cref="T:System.ArgumentException"/> if target   is not found\r
-            <exception cref="T:System.InvalidOperationException"/> if the item is \r
-            already in the list.\r
-            </summary>\r
-            <param name="item">The item to insert.</param>\r
-            <param name="target">The target after which to insert.</param>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.InsertFirst(`0)">\r
-            <summary>\r
-            Insert an item at the front of this list.\r
-            <exception cref="T:System.InvalidOperationException"/> if the item is \r
-            already in the list.\r
-            </summary>\r
-            <param name="item">The item to insert.</param>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.InsertLast(`0)">\r
-            <summary>\r
-            Insert an item at the back of this list.\r
-            <exception cref="T:System.InvalidOperationException"/> if  the item is \r
-            already in the list.\r
-            </summary>\r
-            <param name="item">The item to insert.</param>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.Remove">\r
-            <summary>\r
-            Remove one item from the list: from the front if <code>FIFO</code>\r
-            is true, else from the back.\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is empty.\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.RemoveFirst">\r
-            <summary>\r
-            Remove one item from the front of the list.\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is empty.\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.RemoveLast">\r
-            <summary>\r
-            Remove one item from the back of the list.\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is empty.\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.View(System.Int32,System.Int32)">\r
-            <summary>\r
-            Create a list view on this list. \r
-            <exception cref="T:System.ArgumentOutOfRangeException"/> if the view would not fit into\r
-            this list.\r
-            </summary>\r
-            <param name="start">The index in this list of the start of the view.</param>\r
-            <param name="count">The size of the view.</param>\r
-            <returns>The new list view.</returns>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.Reverse(System.Int32,System.Int32)">\r
-            <summary>\r
-            Reverst part of the list so the items are in the opposite sequence order.\r
-            <exception cref="T:System.ArgumentException"/> if the count is negative.\r
-            <exception cref="T:System.ArgumentOutOfRangeException"/> if the part does not fit\r
-            into the list.\r
-            </summary>\r
-            <param name="start">The index of the start of the part to reverse.</param>\r
-            <param name="count">The size of the part to reverse.</param>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.Shuffle(System.Random)">\r
-            <summary>\r
-            Shuffle the items of this list according to a specific random source.\r
-            </summary>\r
-            <param name="rnd">The random source.</param>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.IndexOf(`0)">\r
-            <summary>\r
-            Searches for an item in the list going forwrds from the start.\r
-            </summary>\r
-            <param name="item">Item to search for.</param>\r
-            <returns>Index of item from start.</returns>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.LastIndexOf(`0)">\r
-            <summary>\r
-            Searches for an item in the list going backwords from the end.\r
-            </summary>\r
-            <param name="item">Item to search for.</param>\r
-            <returns>Index of of item from the end.</returns>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.RemoveAt(System.Int32)">\r
-            <summary>\r
-            Remove the item at a specific position of the list.\r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt;= the size of the collection.\r
-            </summary>\r
-            <param name="i">The index of the item to remove.</param>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.RemoveInterval(System.Int32,System.Int32)">\r
-            <summary>\r
-            Remove all items in an index interval.\r
-            <exception cref="T:System.IndexOutOfRangeException"/>???. \r
-            </summary>\r
-            <param name="start">The index of the first item to remove.</param>\r
-            <param name="count">The number of items to remove.</param>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.Contains(`0)">\r
-            <summary>\r
-            Check if this collection contains (an item equivalent to according to the\r
-            itemhasher) a particular value.\r
-            </summary>\r
-            <param name="item">The value to check for.</param>\r
-            <returns>True if the items is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.Find(`0@)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, return in the ref argument (a\r
-            binary copy of) the actual value found.\r
-            </summary>\r
-            <param name="item">The value to look for.</param>\r
-            <returns>True if the items is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.Update(`0)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, update the item in the collection \r
-            to with a binary copy of the supplied value. \r
-            </summary>\r
-            <param name="item">Value to update.</param>\r
-            <returns>True if the item was found and hence updated.</returns>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.FindOrAdd(`0@)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, return in the ref argument (a\r
-            binary copy of) the actual value found. Else, add the item to the collection.\r
-            </summary>\r
-            <param name="item">The value to look for.</param>\r
-            <returns>True if the item was found (hence not added).</returns>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.UpdateOrAdd(`0)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, update the item in the collection \r
-            to with a binary copy of the supplied value; else add the value to the collection. \r
-            </summary>\r
-            <param name="item">Value to add or update.</param>\r
-            <returns>True if the item was found and updated (hence not added).</returns>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.Remove(`0)">\r
-            <summary>\r
-            Remove a particular item from this collection. \r
-            </summary>\r
-            <param name="item">The value to remove.</param>\r
-            <returns>True if the item was found (and removed).</returns>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.RemoveWithReturn(`0@)">\r
-            <summary>\r
-            Remove a particular item from this collection if found. \r
-            If an item was removed, report a binary copy of the actual item removed in \r
-            the argument.\r
-            </summary>\r
-            <param name="item">The value to remove on input.</param>\r
-            <returns>True if the item was found (and removed).</returns>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.RemoveAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Remove all items in another collection from this one. \r
-            </summary>\r
-            <param name="items">The items to remove.</param>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.Clear">\r
-            <summary>\r
-            Remove all items from this collection.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.RetainAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Remove all items not in some other collection from this one. \r
-            </summary>\r
-            <param name="items">The items to retain.</param>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.ContainsAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Check if this collection contains all the values in another collection\r
-            Multiplicities\r
-            are not taken into account.\r
-            </summary>\r
-            <param name="items">The </param>\r
-            <returns>True if all values in <code>items</code>is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.ContainsCount(`0)">\r
-            <summary>\r
-            Count the number of items of the collection equal to a particular value.\r
-            Returns 0 if and only if the value is not in the collection.\r
-            </summary>\r
-            <param name="item">The value to count.</param>\r
-            <returns>The number of copies found.</returns>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.RemoveAllCopies(`0)">\r
-            <summary>\r
-            Remove all items equivalent to a given value.\r
-            </summary>\r
-            <param name="item">The value to remove.</param>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.Add(`0)">\r
-            <summary>\r
-            Add an item to this collection if possible. Since this collection has set\r
-            semantics, the item will be added if not already in the collection. \r
-            </summary>\r
-            <param name="item">The item to add.</param>\r
-            <returns>True if item was added.</returns>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.AddAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Add the elements from another collection to this collection.\r
-            Only items not already in the collection\r
-            will be added.\r
-            </summary>\r
-            <param name="items">The items to add.</param>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.AddAll``1(System.Collections.Generic.IEnumerable{``0})">\r
-            <summary>\r
-            Add the elements from another collection with a more specialized item type \r
-            to this collection. \r
-            Only items not already in the collection\r
-            will be added.\r
-            </summary>\r
-            <typeparam name="U">The type of items to add</typeparam>\r
-            <param name="items">The items to add</param>\r
-        </member>\r
-        <member name="M:C5.HashedLinkedList`1.Check">\r
-            <summary>\r
-            Check the integrity of the internal data structures of this collection.\r
-            Only avaliable in DEBUG builds???\r
-            </summary>\r
-            <returns>True if check does not fail.</returns>\r
-        </member>\r
-        <member name="P:C5.HashedLinkedList`1.Item(System.Int32)">\r
-            <summary>\r
-            On this list, this indexer is read/write.\r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt;= the size of the collection.\r
-            </summary>\r
-            <value>The i'th item of this list.</value>\r
-            <param name="i">The index of the item to fetch or store.</param>\r
-        </member>\r
-        <member name="P:C5.HashedLinkedList`1.ContainsSpeed">\r
-            <summary>\r
-            The value is symbolic indicating the type of asymptotic complexity\r
-            in terms of the size of this collection (worst-case or amortized as\r
-            relevant).\r
-            </summary>\r
-            <value>Speed.Constant</value>\r
-        </member>\r
-        <member name="P:C5.HashedLinkedList`1.AllowsDuplicates">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>False since this collection has set semantics.</value>\r
-        </member>\r
-        <member name="T:C5.KeyValuePair`2">\r
-            <summary>\r
-            An entry in a dictionary from K to V.\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.KeyValuePair`2.key">\r
-            <summary>\r
-            The key field of the entry\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.KeyValuePair`2.value">\r
-            <summary>\r
-            The value field of the entry\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.KeyValuePair`2.#ctor(`0,`1)">\r
-            <summary>\r
-            Create an entry with specified key and value\r
-            </summary>\r
-            <param name="k">The key</param>\r
-            <param name="v">The value</param>\r
-        </member>\r
-        <member name="M:C5.KeyValuePair`2.#ctor(`0)">\r
-            <summary>\r
-            Create an entry with a specified key. The value is undefined.\r
-            </summary>\r
-            <param name="k">The key</param>\r
-        </member>\r
-        <member name="M:C5.KeyValuePair`2.ToString">\r
-            <summary>\r
-            Pretty print an entry\r
-            </summary>\r
-            <returns>(key, value)</returns>\r
-        </member>\r
-        <member name="M:C5.KeyValuePair`2.Equals(System.Object)">\r
-            <summary>\r
-            Check equality of entries\r
-            </summary>\r
-            <param name="obj">The other object</param>\r
-            <returns>True if obj is an entry of the same type and has the same key</returns>\r
-        </member>\r
-        <member name="M:C5.KeyValuePair`2.GetHashCode">\r
-            <summary>\r
-            Get the hash code of the key.\r
-            </summary>\r
-            <returns>The hash code</returns>\r
-        </member>\r
-        <member name="T:C5.KeyValuePairComparer`2">\r
-            <summary>\r
-            Default comparer for dictionary entries in a sorted dictionary.\r
-            Entry comparisons only look at keys.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.KeyValuePairComparer`2.#ctor(C5.IComparer{`0})">\r
-            <summary>\r
-            Create an entry comparer for a item comparer of the keys\r
-            </summary>\r
-            <param name="c">Comparer of keys</param>\r
-        </member>\r
-        <member name="M:C5.KeyValuePairComparer`2.Compare(C5.KeyValuePair{`0,`1},C5.KeyValuePair{`0,`1})">\r
-            <summary>\r
-            Compare two entries\r
-            </summary>\r
-            <param name="a">First entry</param>\r
-            <param name="b">Second entry</param>\r
-            <returns>The result of comparing the keys</returns>\r
-        </member>\r
-        <member name="T:C5.KeyValuePairHasher`2">\r
-            <summary>\r
-            Default hasher for dictionary entries.\r
-            Operations only look at keys.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.KeyValuePairHasher`2.#ctor">\r
-            <summary>\r
-            Create an entry hasher using the default hasher for keys\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.KeyValuePairHasher`2.#ctor(C5.IHasher{`0})">\r
-            <summary>\r
-            Create an entry hasher from a specified item hasher for the keys\r
-            </summary>\r
-            <param name="c">The key hasher</param>\r
-        </member>\r
-        <member name="M:C5.KeyValuePairHasher`2.GetHashCode(C5.KeyValuePair{`0,`1})">\r
-            <summary>\r
-            Get the hash code of the entry\r
-            </summary>\r
-            <param name="item">The entry</param>\r
-            <returns>The hash code of the key</returns>\r
-        </member>\r
-        <member name="M:C5.KeyValuePairHasher`2.Equals(C5.KeyValuePair{`0,`1},C5.KeyValuePair{`0,`1})">\r
-            <summary>\r
-            Test two entries for equality\r
-            </summary>\r
-            <param name="i1">First entry</param>\r
-            <param name="i2">Second entry</param>\r
-            <returns>True if keys are equal</returns>\r
-        </member>\r
-        <member name="T:C5.TreeSet`1">\r
-             <summary>\r
-             An implementation of Red-Black trees as an indexed, sorted collection with set semantics,\r
-             cf. <a href="litterature.htm#CLRS">CLRS</a>. <see cref="T:C5.TreeBag!1"/> for a version \r
-             with bag semantics. <see cref="T:C5.TreeDictionary!2"/> for a sorted dictionary \r
-             based on this tree implementation.\r
-             <p>\r
-             The comparer (sorting order) may be either natural, because the item type is comparable \r
-             (generic: <see cref="T:C5.IComparable!1"/> or non-generic: System.IComparable) or it can\r
-             be external and supplied by the user in the constructor.</p>\r
-            \r
-             <p><i>TODO: describe performance here</i></p>\r
-             <p><i>TODO: discuss persistence and its useful usage modes. Warn about the space\r
-             leak possible with other usage modes.</i></p>\r
-             </summary>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.left(C5.TreeSet{`0}.Node)">\r
-            <summary>\r
-            Fetch the left child of n taking node-copying persistence into\r
-            account if relevant. \r
-            </summary>\r
-            <param name="n"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.#ctor">\r
-            <summary>\r
-            Create a red-black tree collection with natural comparer and item hasher.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.#ctor(C5.IComparer{`0})">\r
-            <summary>\r
-            Create a red-black tree collection with an external comparer (and natural item hasher,\r
-            assumed consistent).\r
-            </summary>\r
-            <param name="c">The external comparer</param>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.#ctor(C5.IComparer{`0},C5.IHasher{`0})">\r
-            <summary>\r
-            Create a red-black tree collection with an external comparer aand an external\r
-            item hasher, assumed consistent.\r
-            </summary>\r
-            <param name="c">The external comparer</param>\r
-            <param name="h">The external item hasher</param>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.GetEnumerator">\r
-            <summary>\r
-            Create an enumerator for this tree\r
-            </summary>\r
-            <returns>The enumerator</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.addIterative(`0,`0@,System.Boolean,System.Boolean@)">\r
-            <summary>\r
-            Add item to tree. If already there, return the found item in the second argument.\r
-            </summary>\r
-            <param name="item">Item to add</param>\r
-            <param name="founditem">item found</param>\r
-            <param name="update">whether item in node should be updated</param>\r
-            <param name="wasfound">true if found in bag, false if not found or tre is a set</param>\r
-            <returns>True if item was added</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Add(`0)">\r
-            <summary>\r
-            Add an item to this collection if possible. If this collection has set\r
-            semantics, the item will be added if not already in the collection. If\r
-            bag semantics, the item will always be added.\r
-            </summary>\r
-            <param name="item">The item to add.</param>\r
-            <returns>True if item was added.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.AddAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Add the elements from another collection to this collection. If this\r
-            collection has set semantics, only items not already in the collection\r
-            will be added.\r
-            </summary>\r
-            <param name="items">The items to add.</param>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.AddAll``1(System.Collections.Generic.IEnumerable{``0})">\r
-            <summary>\r
-            Add the elements from another collection with a more specialized item type \r
-            to this collection. If this\r
-            collection has set semantics, only items not already in the collection\r
-            will be added.\r
-            </summary>\r
-            <typeparam name="U">The type of items to add</typeparam>\r
-            <param name="items">The items to add</param>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.AddSorted(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Add all the items from another collection with an enumeration order that \r
-            is increasing in the items. <para>The idea is that the implementation may use\r
-            a faster algorithm to merge the two collections.</para>\r
-            <exception cref="T:System.ArgumentException"/> if the enumerated items turns out\r
-            not to be in increasing order.\r
-            </summary>\r
-            <param name="items">The collection to add.</param>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Contains(`0)">\r
-            <summary>\r
-            Check if this collection contains (an item equivalent to according to the\r
-            itemhasher) a particular value.\r
-            </summary>\r
-            <param name="item">The value to check for.</param>\r
-            <returns>True if the items is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Find(`0@)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, return in the ref argument (a\r
-            binary copy of) the actual value found.\r
-            </summary>\r
-            <param name="item">The value to look for.</param>\r
-            <returns>True if the items is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.FindOrAdd(`0@)">\r
-             <summary>\r
-             Find or add the item to the tree. If the tree does not contain\r
-             an item equivalent to this item add it, else return the exisiting\r
-             one in the ref argument. \r
-            \r
-             </summary>\r
-             <param name="item"></param>\r
-             <returns>True if item was found</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Update(`0)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, update the item in the collection \r
-            to with a binary copy of the supplied value. If the collection has bag semantics,\r
-            this updates all equivalent copies in\r
-            the collection.\r
-            </summary>\r
-            <param name="item">Value to update.</param>\r
-            <returns>True if the item was found and hence updated.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.UpdateOrAdd(`0)">\r
-             <summary>\r
-             Check if this collection contains an item equivalent according to the\r
-             itemhasher to a particular value. If so, update the item in the collection \r
-             to with a binary copy of the supplied value; else add the value to the collection. \r
-            \r
-             <p>NOTE: the bag implementation is currently wrong!</p>\r
-             </summary>\r
-             <param name="item">Value to add or update.</param>\r
-             <returns>True if the item was found and updated (hence not added).</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Remove(`0)">\r
-            <summary>\r
-            Remove a particular item from this collection. If the collection has bag\r
-            semantics only one copy equivalent to the supplied item is removed. \r
-            </summary>\r
-            <param name="item">The value to remove.</param>\r
-            <returns>True if the item was found (and removed).</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.RemoveWithReturn(`0@)">\r
-            <summary>\r
-            Remove a particular item from this collection if found. If the collection\r
-            has bag semantics only one copy equivalent to the supplied item is removed,\r
-            which one is implementation dependent. \r
-            If an item was removed, report a binary copy of the actual item removed in \r
-            the argument.\r
-            </summary>\r
-            <param name="item">The value to remove on input.</param>\r
-            <returns>True if the item was found (and removed).</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Clear">\r
-            <summary>\r
-            Remove all items from this collection.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.RemoveAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Remove all items in another collection from this one. If this collection\r
-            has bag semantics, take multiplicities into account.\r
-            </summary>\r
-            <param name="items">The items to remove.</param>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.RetainAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Remove all items not in some other collection from this one. If this collection\r
-            has bag semantics, take multiplicities into account.\r
-            </summary>\r
-            <param name="items">The items to retain.</param>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.ContainsAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Check if this collection contains all the values in another collection.\r
-            If this collection has bag semantics (<code>NoDuplicates==false</code>)\r
-            the check is made with respect to multiplicities, else multiplicities\r
-            are not taken into account.\r
-            </summary>\r
-            <param name="items">The </param>\r
-            <returns>True if all values in <code>items</code>is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.FindAll(C5.Filter{`0})">\r
-            <summary>\r
-            Create a new indexed sorted collection consisting of the items of this\r
-            indexed sorted collection satisfying a certain predicate.\r
-            </summary>\r
-            <param name="filter">The filter delegate defining the predicate.</param>\r
-            <returns>The new indexed sorted collection.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Map``1(C5.Mapper{`0,``0},C5.IComparer{``0})">\r
-            <summary>\r
-            Create a new indexed sorted collection consisting of the results of\r
-            mapping all items of this list.\r
-            <exception cref="T:System.ArgumentException"/> if the map is not increasing over \r
-            the items of this collection (with respect to the two given comparison \r
-            relations).\r
-            </summary>\r
-            <param name="mapper">The delegate definging the map.</param>\r
-            <param name="c">The comparion relation to use for the result.</param>\r
-            <returns>The new sorted collection.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.ContainsCount(`0)">\r
-            <summary>\r
-            Count the number of items of the collection equal to a particular value.\r
-            Returns 0 if and only if the value is not in the collection.\r
-            </summary>\r
-            <param name="item">The value to count.</param>\r
-            <returns>The number of copies found.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.RemoveAllCopies(`0)">\r
-            <summary>\r
-            Remove all items equivalent to a given value.\r
-            </summary>\r
-            <param name="item">The value to remove.</param>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.IndexOf(`0)">\r
-            <summary>\r
-            Searches for an item in the list going forwrds from the start.\r
-            </summary>\r
-            <param name="item">Item to search for.</param>\r
-            <returns>Index of item from start.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.LastIndexOf(`0)">\r
-            <summary>\r
-            Searches for an item in the list going backwords from the end.\r
-            </summary>\r
-            <param name="item">Item to search for.</param>\r
-            <returns>Index of of item from the end.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.RemoveAt(System.Int32)">\r
-            <summary>\r
-            Remove the item at a specific position of the list.\r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt;= the size of the collection.\r
-            </summary>\r
-            <param name="i">The index of the item to remove.</param>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.RemoveInterval(System.Int32,System.Int32)">\r
-            <summary>\r
-            Remove all items in an index interval.\r
-            <exception cref="T:System.IndexOutOfRangeException"/>???. \r
-            </summary>\r
-            <param name="start">The index of the first item to remove.</param>\r
-            <param name="count">The number of items to remove.</param>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Backwards">\r
-            <summary>\r
-            Create a collection containing the same items as this collection, but\r
-            whose enumerator will enumerate the items backwards. The new collection\r
-            will become invalid if the original is modified. Method typicaly used as in\r
-            <code>foreach (T x in coll.Backwards()) {...}</code>\r
-            </summary>\r
-            <returns>The backwards collection.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.FindMin">\r
-            <summary>\r
-            Find the current least item of this priority queue.\r
-            </summary>\r
-            <returns>The least item.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.DeleteMin">\r
-            <summary>\r
-            Remove the least item from this  priority queue.\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.FindMax">\r
-            <summary>\r
-            Find the current largest item of this priority queue.\r
-            </summary>\r
-            <returns>The largest item.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.DeleteMax">\r
-            <summary>\r
-            Remove the largest item from this  priority queue.\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Predecessor(`0)">\r
-            <summary>\r
-            Find the strict predecessor in the sorted collection of a particular value,\r
-            i.e. the largest item in the collection less than the supplied value.\r
-            <exception cref="T:System.InvalidOperationException"/> if no such element exists (the\r
-            supplied  value is less than or equal to the minimum of this collection.)\r
-            </summary>\r
-            <param name="item">The item to find the predecessor for.</param>\r
-            <returns>The predecessor.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.WeakPredecessor(`0)">\r
-            <summary>\r
-            Find the weak predecessor in the sorted collection of a particular value,\r
-            i.e. the largest item in the collection less than or equal to the supplied value.\r
-            <exception cref="T:System.InvalidOperationException"/> if no such element exists (the\r
-            supplied  value is less than the minimum of this collection.)\r
-            </summary>\r
-            <param name="item">The item to find the weak predecessor for.</param>\r
-            <returns>The weak predecessor.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Successor(`0)">\r
-            <summary>\r
-            Find the strict successor in the sorted collection of a particular value,\r
-            i.e. the least item in the collection greater than the supplied value.\r
-            <exception cref="T:System.InvalidOperationException"/> if no such element exists (the\r
-            supplied  value is greater than or equal to the maximum of this collection.)\r
-            </summary>\r
-            <param name="item">The item to find the successor for.</param>\r
-            <returns>The successor.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.WeakSuccessor(`0)">\r
-            <summary>\r
-            Find the weak successor in the sorted collection of a particular value,\r
-            i.e. the least item in the collection greater than or equal to the supplied value.\r
-            <exception cref="T:System.InvalidOperationException"/> if no such element exists (the\r
-            supplied  value is greater than the maximum of this collection.)\r
-            </summary>\r
-            <param name="item">The item to find the weak successor for.</param>\r
-            <returns>The weak successor.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.RangeFrom(`0)">\r
-            <summary>\r
-            Query this sorted collection for items greater than or equal to a supplied value.\r
-            </summary>\r
-            <param name="bot">The lower bound (inclusive).</param>\r
-            <returns>The result directed collection.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.RangeFromTo(`0,`0)">\r
-            <summary>\r
-            Query this sorted collection for items between two supplied values.\r
-            </summary>\r
-            <param name="bot">The lower bound (inclusive).</param>\r
-            <param name="top">The upper bound (exclusive).</param>\r
-            <returns>The result directed collection.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.RangeTo(`0)">\r
-            <summary>\r
-            Query this sorted collection for items less than a supplied value.\r
-            </summary>\r
-            <param name="top">The upper bound (exclusive).</param>\r
-            <returns>The result directed collection.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.RangeAll">\r
-            <summary>\r
-            Create a directed collection with the same items as this collection.\r
-            </summary>\r
-            <returns>The result directed collection.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Cut(System.IComparable{`0},`0@,System.Boolean@,`0@,System.Boolean@)">\r
-            <summary>\r
-            Perform a search in the sorted collection for the ranges in which a\r
-            non-decreasing function from the item type to <code>int</code> is\r
-            negative, zero respectively positive. If the supplied cut function is\r
-            not non-decreasing, the result of this call is undefined.\r
-            </summary>\r
-            <param name="c">The cut function <code>T</code> to <code>int</code>, given\r
-            as an <code>IComparable&lt;T&gt;</code> object, where the cut function is\r
-            the <code>c.CompareTo(T that)</code> method.</param>\r
-            <param name="low">Returns the largest item in the collection, where the\r
-            cut function is negative (if any).</param>\r
-            <param name="lowIsValid">True if the cut function is negative somewhere\r
-            on this collection.</param>\r
-            <param name="high">Returns the least item in the collection, where the\r
-            cut function is positive (if any).</param>\r
-            <param name="highIsValid">True if the cut function is positive somewhere\r
-            on this collection.</param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.CountFrom(`0)">\r
-            <summary>\r
-            Determine the number of items at or above a supplied threshold.\r
-            </summary>\r
-            <param name="bot">The lower bound (inclusive)</param>\r
-            <returns>The number of matcing items.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.CountFromTo(`0,`0)">\r
-            <summary>\r
-            Determine the number of items between two supplied thresholds.\r
-            </summary>\r
-            <param name="bot">The lower bound (inclusive)</param>\r
-            <param name="top">The upper bound (exclusive)</param>\r
-            <returns>The number of matcing items.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.CountTo(`0)">\r
-            <summary>\r
-            Determine the number of items below a supplied threshold.\r
-            </summary>\r
-            <param name="top">The upper bound (exclusive)</param>\r
-            <returns>The number of matcing items.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.RemoveRangeFrom(`0)">\r
-            <summary>\r
-            Remove all items of this collection above or at a supplied threshold.\r
-            </summary>\r
-            <param name="low">The lower threshold (inclusive).</param>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.RemoveRangeFromTo(`0,`0)">\r
-            <summary>\r
-            Remove all items of this collection between two supplied thresholds.\r
-            </summary>\r
-            <param name="low">The lower threshold (inclusive).</param>\r
-            <param name="hi">The upper threshold (exclusive).</param>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.RemoveRangeTo(`0)">\r
-            <summary>\r
-            Remove all items of this collection below a supplied threshold.\r
-            </summary>\r
-            <param name="hi">The upper threshold (exclusive).</param>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Dispose">\r
-            <summary>\r
-            If this tree is a snapshot, remove registration in base tree\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Finalize">\r
-            <summary>\r
-            If this tree is a snapshot, remove registration in base tree\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Snapshot">\r
-            <summary>\r
-            Make a (read-only) snap shot of this collection.\r
-            </summary>\r
-            <returns>The snap shot.</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.minidump(C5.TreeSet{`0}.Node,System.String)">\r
-            <summary>\r
-            Display this node on the console, and recursively its subnodes.\r
-            </summary>\r
-            <param name="n">Node to display</param>\r
-            <param name="space">Indentation</param>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.dump">\r
-            <summary>\r
-            Print the tree structure to the console stdout.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.dump(System.String)">\r
-            <summary>\r
-            Print the tree structure to the console stdout.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.dump(System.String,System.String)">\r
-            <summary>\r
-            Display this tree on the console.\r
-            </summary>\r
-            <param name="msg">Identifying string of this call to dump</param>\r
-            <param name="err">Extra (error)message to include</param>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.massert(System.Boolean,C5.TreeSet{`0}.Node,System.String,System.IO.TextWriter)">\r
-            <summary>\r
-            Print warning m on o if b is false.\r
-            </summary>\r
-            <param name="b">Condition that should hold</param>\r
-            <param name="n">Place (used for id display)</param>\r
-            <param name="m">Message</param>\r
-            <param name="o">Output stream</param>\r
-            <returns>b</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Check(System.String)">\r
-            <summary>\r
-            Checks red-black invariant. Dumps tree to console if bad\r
-            </summary>\r
-            <param name="name">Title of dump</param>\r
-            <returns>false if invariant violation</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Check">\r
-            <summary>\r
-            Checks red-black invariant. Dumps tree to console if bad\r
-            </summary>\r
-            <returns>false if invariant violation</returns>\r
-        </member>\r
-        <member name="P:C5.TreeSet`1.Features">\r
-            <summary>\r
-            A debugging aid for making the selected compilation alternatives \r
-            available to the user. (To be removed when selection is finally fixed\r
-            for production version).\r
-            </summary>\r
-        </member>\r
-        <member name="P:C5.TreeSet`1.AllowsDuplicates">\r
-            <summary></summary>\r
-            <value>False since this tree has set semantics.</value>\r
-        </member>\r
-        <member name="P:C5.TreeSet`1.ContainsSpeed">\r
-            <summary>\r
-            The value is symbolic indicating the type of asymptotic complexity\r
-            in terms of the size of this collection (worst-case or amortized as\r
-            relevant).\r
-            </summary>\r
-            <value>Speed.Log</value>\r
-        </member>\r
-        <member name="P:C5.TreeSet`1.Item(System.Int32)">\r
-            <summary>\r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt;= the size of the collection.\r
-            </summary>\r
-            <value>The i'th item of this list.</value>\r
-            <param name="i">the index to lookup</param>\r
-        </member>\r
-        <member name="P:C5.TreeSet`1.Item(System.Int32,System.Int32)">\r
-            <summary>\r
-            <exception cref="T:System.IndexOutOfRangeException"/>.\r
-            </summary>\r
-            <value>The directed collection of items in a specific index interval.</value>\r
-            <param name="start">The low index of the interval (inclusive).</param>\r
-            <param name="end">The high index of the interval (exclusive).</param>\r
-        </member>\r
-        <member name="P:C5.TreeSet`1.Comparer">\r
-            <summary>\r
-            The comparer object supplied at creation time for this collection\r
-            </summary>\r
-            <value>The comparer</value>\r
-        </member>\r
-        <member name="T:C5.TreeSet`1.Feature">\r
-            <summary>\r
-            A debugging aid for making the selected compilation alternatives \r
-            available to the user. (To be removed when selection is finally fixed\r
-            for production version).\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.TreeSet`1.Feature.Dummy">\r
-            <summary>\r
-            Nothing\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.TreeSet`1.Feature.NodeCopyPersistence">\r
-            <summary>\r
-            Node copy persistence as explained in <a href="litterature.htm#Tarjan1">Tarjan1</a>\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.TreeSet`1.Feature.Sizes">\r
-            <summary>\r
-            Maintain sub tree sizes\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.TreeSet`1.Feature.Heights">\r
-            <summary>\r
-            Maintain precise node heights\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.TreeSet`1.Feature.Ranks">\r
-            <summary>\r
-            Maintain node ranks (~ black height)\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.TreeSet`1.Feature.Traceid">\r
-            <summary>\r
-            Maintain unique ids on tree nodes.\r
-            </summary>\r
-        </member>\r
-        <member name="T:C5.TreeSet`1.Node">\r
-            <summary>\r
-            The type of node in a Red-Black binary tree\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Node.update(C5.TreeSet{`0}.Node@,System.Boolean,C5.TreeSet{`0}.Node,System.Int32,System.Int32)">\r
-            <summary>\r
-            Update a child pointer\r
-            </summary>\r
-            <param name="cursor"></param>\r
-            <param name="leftnode"></param>\r
-            <param name="child"></param>\r
-            <param name="maxsnapid"></param>\r
-            <param name="generation"></param>\r
-            <returns>True if node was *copied*</returns>\r
-        </member>\r
-        <member name="T:C5.TreeSet`1.Enumerator">\r
-            <summary>\r
-            An enumerator for a red-black tree collection. Based on an explicit stack\r
-            of subtrees waiting to be enumerated. Currently only used for the tree set \r
-            enumerators (tree bag enumerators use an iterator block based enumerator).\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Enumerator.#ctor(C5.TreeSet{`0})">\r
-            <summary>\r
-            Create a tree enumerator\r
-            </summary>\r
-            <param name="tree">The red-black tree to enumerate</param>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Enumerator.MoveNext">\r
-            <summary>\r
-            Move enumerator to next item in tree, or the first item if\r
-            this is the first call to MoveNext. \r
-            <exception cref="T:System.InvalidOperationException"/> if underlying tree was modified.\r
-            </summary>\r
-            <returns>True if enumerator is valid now</returns>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Enumerator.Dispose">\r
-            <summary>\r
-            Call Dispose(true) and then suppress finalization of this enumerator.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Enumerator.Dispose(System.Boolean)">\r
-            <summary>\r
-            Remove the internal data (notably the stack array).\r
-            </summary>\r
-            <param name="disposing">True if called from Dispose(),\r
-            false if called from the finalizer</param>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Enumerator.Finalize">\r
-            <summary>\r
-            Finalizer for enumeratir\r
-            </summary>\r
-        </member>\r
-        <member name="P:C5.TreeSet`1.Enumerator.Current">\r
-            <summary>\r
-            Undefined if enumerator is not valid (MoveNext hash been called returning true)\r
-            </summary>\r
-            <value>The current item of the enumerator.</value>\r
-        </member>\r
-        <member name="T:C5.TreeSet`1.SnapEnumerator">\r
-            <summary>\r
-            An enumerator for a snapshot of a node copy persistent red-black tree\r
-            collection.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.SnapEnumerator.#ctor(C5.TreeSet{`0})">\r
-            <summary>\r
-            Creta an enumerator for a snapshot of a node copy persistent red-black tree\r
-            collection\r
-            </summary>\r
-            <param name="tree">The snapshot</param>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.SnapEnumerator.MoveNext">\r
-            <summary>\r
-            Move enumerator to next item in tree, or the first item if\r
-            this is the first call to MoveNext. \r
-            <exception cref="T:System.InvalidOperationException"/> if underlying tree was modified.\r
-            </summary>\r
-            <returns>True if enumerator is valid now</returns>\r
-        </member>\r
-        <member name="P:C5.TreeSet`1.SnapEnumerator.Current">\r
-            <summary>\r
-            Undefined if enumerator is not valid (MoveNext hash been called returning true)\r
-            </summary>\r
-            <value>The current value of the enumerator.</value>\r
-        </member>\r
-        <member name="M:C5.TreeSet`1.Range.Enumerator.MoveNext">\r
-            <summary>\r
-            Move enumerator to next item in tree, or the first item if\r
-            this is the first call to MoveNext. \r
-            <exception cref="T:System.InvalidOperationException"/> if underlying tree was modified.\r
-            </summary>\r
-            <returns>True if enumerator is valid now</returns>\r
-        </member>\r
-        <member name="P:C5.TreeSet`1.Range.Enumerator.Current">\r
-            <summary>\r
-            Undefined if enumerator is not valid (MoveNext hash been called returning true)\r
-            </summary>\r
-            <value>The current value of the enumerator.</value>\r
-        </member>\r
-        <member name="T:C5.IntervalHeap`1">\r
-            <summary>\r
-            A priority queue class based on an interval heap data structure.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.IntervalHeap`1.#ctor">\r
-            <summary>\r
-            Create an interval heap with natural item comparer and default initial capacity (16)\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.IntervalHeap`1.#ctor(C5.IComparer{`0})">\r
-            <summary>\r
-            Create an interval heap with external item comparer and default initial capacity (16)\r
-            </summary>\r
-            <param name="c">The external comparer</param>\r
-        </member>\r
-        <member name="M:C5.IntervalHeap`1.#ctor(System.Int32)">\r
-            <summary>\r
-            Create an interval heap with natural item comparer and prescribed initial capacity\r
-            </summary>\r
-            <param name="capacity">The initial capacity</param>\r
-        </member>\r
-        <member name="M:C5.IntervalHeap`1.#ctor(C5.IComparer{`0},System.Int32)">\r
-            <summary>\r
-            Create an interval heap with external item comparer and prescribed initial capacity\r
-            </summary>\r
-            <param name="c">The external comparer</param>\r
-            <param name="capacity">The initial capacity</param>\r
-        </member>\r
-        <member name="M:C5.IntervalHeap`1.FindMin">\r
-            <summary>\r
-            Find the current least item of this priority queue.\r
-            <exception cref="T:System.InvalidOperationException"/> if queue is empty\r
-            </summary>\r
-            <returns>The least item.</returns>\r
-        </member>\r
-        <member name="M:C5.IntervalHeap`1.DeleteMin">\r
-            <summary>\r
-            Remove the least item from this  priority queue.\r
-            <exception cref="T:System.InvalidOperationException"/> if queue is empty\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.IntervalHeap`1.FindMax">\r
-            <summary>\r
-            Find the current largest item of this priority queue.\r
-            <exception cref="T:System.InvalidOperationException"/> if queue is empty\r
-            </summary>\r
-            <returns>The largest item.</returns>\r
-        </member>\r
-        <member name="M:C5.IntervalHeap`1.DeleteMax">\r
-            <summary>\r
-            Remove the largest item from this  priority queue.\r
-            <exception cref="T:System.InvalidOperationException"/> if queue is empty\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.IntervalHeap`1.Add(`0)">\r
-            <summary>\r
-            Add an item to this priority queue.\r
-            </summary>\r
-            <param name="item">The item to add.</param>\r
-            <returns>True</returns>\r
-        </member>\r
-        <member name="M:C5.IntervalHeap`1.AddAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Add the elements from another collection to this collection. \r
-            </summary>\r
-            <param name="items">The items to add.</param>\r
-        </member>\r
-        <member name="M:C5.IntervalHeap`1.AddAll``1(System.Collections.Generic.IEnumerable{``0})">\r
-            <summary>\r
-            Add the elements from another collection with a more specialized item type \r
-            to this collection. \r
-            </summary>\r
-            <typeparam name="U">The type of items to add</typeparam>\r
-            <param name="items">The items to add</param>\r
-        </member>\r
-        <member name="M:C5.IntervalHeap`1.GetEnumerator">\r
-            <summary>\r
-            Create an enumerator for the collection\r
-            <para>Note: the enumerator does *not* enumerate the items in sorted order, \r
-            but in the internal table order.</para>\r
-            </summary>\r
-            <returns>The enumerator(SIC)</returns>\r
-        </member>\r
-        <member name="M:C5.IntervalHeap`1.Check">\r
-            <summary>\r
-            Check the integrity of the internal data structures of this collection.\r
-            Only avaliable in DEBUG builds???\r
-            </summary>\r
-            <returns>True if check does not fail.</returns>\r
-        </member>\r
-        <member name="P:C5.IntervalHeap`1.Comparer">\r
-            <summary>\r
-            The comparer object supplied at creation time for this collection\r
-            </summary>\r
-            <value>The comparer</value>\r
-        </member>\r
-        <member name="P:C5.IntervalHeap`1.AllowsDuplicates">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>True since this collection has bag semantics</value>\r
-        </member>\r
-        <member name="P:C5.IntervalHeap`1.SyncRoot">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>The distinguished object to use for locking to synchronize multithreaded access</value>\r
-        </member>\r
-        <member name="P:C5.IntervalHeap`1.IsEmpty">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>True if this collection is empty.</value>\r
-        </member>\r
-        <member name="P:C5.IntervalHeap`1.Count">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>The size of this collection</value>\r
-        </member>\r
-        <member name="P:C5.IntervalHeap`1.CountSpeed">\r
-            <summary>\r
-            The value is symbolic indicating the type of asymptotic complexity\r
-            in terms of the size of this collection (worst-case or amortized as\r
-            relevant).\r
-            </summary>\r
-            <value>A characterization of the speed of the \r
-            <code>Count</code> property in this collection.</value>\r
-        </member>\r
-        <member name="T:C5.HashDictionary`2">\r
-            <summary>\r
-            A generic dictionary class based on a hash set class <see cref="T:C5.HashSet!1"/>.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.HashDictionary`2.#ctor">\r
-            <summary>\r
-            Create a hash dictionary using a default hasher for the keys.\r
-            Initial capacity of internal table will be 16 entries and threshold for \r
-            expansion is 66% fill.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.HashDictionary`2.#ctor(C5.IHasher{`0})">\r
-            <summary>\r
-            Create a hash dictionary using a custom hasher for the keys.\r
-            Initial capacity of internal table will be 16 entries and threshold for \r
-            expansion is 66% fill.\r
-            </summary>\r
-            <param name="h">The external key hasher</param>\r
-        </member>\r
-        <member name="M:C5.HashDictionary`2.#ctor(System.Int32,System.Double,C5.IHasher{`0})">\r
-            <summary>\r
-            Create a hash dictionary using a custom hasher and prescribing the \r
-            initial size of the dictionary and a non-default threshold for internal table expansion.\r
-            </summary>\r
-            <param name="capacity">The initial capacity. Will be rounded upwards to nearest\r
-            power of 2, at least 16.</param>\r
-            <param name="fill">The expansion threshold. Must be between 10% and 90%.</param>\r
-            <param name="h">The external key hasher</param>\r
-        </member>\r
-        <member name="T:C5.ArrayList`1">\r
-             <summary>\r
-             A list collection based on a plain dynamic array data structure.\r
-             Expansion of the internal array is performed by doubling on demand. \r
-             The internal array is only shrinked by the Clear method. \r
-            \r
-             <p>When the FIFO property is set to false this class works fine as a stack of T.\r
-             When the FIFO property is set to true the class will function as a (FIFO) queue\r
-             but very inefficiently, use a LinkedList (<see cref="T:C5.LinkedList!1"/>) instead.</p>\r
-             </summary>\r
-        </member>\r
-        <member name="F:C5.ArrayList`1.underlying">\r
-            <summary>\r
-            The underlying list if we are a view, null else.\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.ArrayList`1.underlyingsize">\r
-            <summary>\r
-            The size of the underlying list.\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.ArrayList`1.fIFO">\r
-            <summary>\r
-            The underlying field of the FIFO property\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.expand">\r
-            <summary>\r
-            Double the size of the internal array.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.expand(System.Int32,System.Int32)">\r
-            <summary>\r
-            Expand the internal array, resetting the index of the first unused element.\r
-            </summary>\r
-            <param name="newcapacity">The new capacity (will be rouded upwards to a power of 2).</param>\r
-            <param name="newsize">The new count of </param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.updatecheck">\r
-            <summary>\r
-            Check if it is valid to perform updates and increment stamp.\r
-            <exception cref="T:System.InvalidOperationException"/> if check fails.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.modifycheck">\r
-            <summary>\r
-            Check if we are a view that the underlying list has only been updated through us.\r
-            <exception cref="T:System.InvalidOperationException"/> if check fails.\r
-            <br/>\r
-            This method should be called from enumerators etc to guard against \r
-            modification of the base collection.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.modifycheck(System.Int32)">\r
-            <summary>\r
-            Check that the list has not been updated since a particular time.\r
-            <exception cref="T:System.InvalidOperationException"/> if check fails.\r
-            </summary>\r
-            <param name="stamp">The stamp indicating the time.</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.addtosize(System.Int32)">\r
-            <summary>\r
-            Increment or decrement the private size fields\r
-            </summary>\r
-            <param name="delta">Increment (with sign)</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.indexOf(`0)">\r
-            <summary>\r
-            Internal version of IndexOf without modification checks.\r
-            </summary>\r
-            <param name="item">Item to look for</param>\r
-            <returns>The index of first occurrence</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.lastIndexOf(`0)">\r
-            <summary>\r
-            Internal version of LastIndexOf without modification checks.\r
-            </summary>\r
-            <param name="item">Item to look for</param>\r
-            <returns>The index of last occurrence</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.insert(System.Int32,`0)">\r
-            <summary>\r
-            Internal version of Insert with no modification checks.\r
-            </summary>\r
-            <param name="i">Index to insert at</param>\r
-            <param name="item">Item to insert</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.removeAt(System.Int32)">\r
-            <summary>\r
-            Internal version of RemoveAt with no modification checks.\r
-            </summary>\r
-            <param name="i">Index to remove at</param>\r
-            <returns>The removed item</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.#ctor">\r
-            <summary>\r
-            Create an array list with default item hasher and initial capacity 8 items.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.#ctor(C5.IHasher{`0})">\r
-            <summary>\r
-            Create an array list with external item hasher and initial capacity 8 items.\r
-            </summary>\r
-            <param name="hasher">The external hasher</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.#ctor(System.Int32)">\r
-            <summary>\r
-            Create an array list with default item hasher and prescribed initial capacity.\r
-            </summary>\r
-            <param name="capacity">The prescribed capacity</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.#ctor(System.Int32,C5.IHasher{`0})">\r
-            <summary>\r
-            Create an array list with external item hasher and prescribed initial capacity.\r
-            </summary>\r
-            <param name="capacity">The prescribed capacity</param>\r
-            <param name="hasher">The external hasher</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.Insert(System.Int32,`0)">\r
-            <summary>\r
-            Insert an item at a specific index location in this list. \r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt; the size of the collection.</summary>\r
-            <param name="i">The index at which to insert.</param>\r
-            <param name="item">The item to insert.</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.InsertAll(System.Int32,System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Insert into this list all items from an enumerable collection starting \r
-            at a particular index.\r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt; the size of the collection.\r
-            </summary>\r
-            <param name="i">Index to start inserting at</param>\r
-            <param name="items">Items to insert</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.InsertBefore(`0,`0)">\r
-            <summary>\r
-            Insert an item right before the first occurrence of some target item.\r
-            <exception cref="T:System.ArgumentException"/> if target   is not found.\r
-            </summary>\r
-            <param name="item">The item to insert.</param>\r
-            <param name="target">The target before which to insert.</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.InsertAfter(`0,`0)">\r
-            <summary>\r
-            Insert an item right after the last(???) occurrence of some target item.\r
-            <exception cref="T:System.ArgumentException"/> if target   is not found.\r
-            </summary>\r
-            <param name="item">The item to insert.</param>\r
-            <param name="target">The target after which to insert.</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.InsertFirst(`0)">\r
-            <summary>\r
-            Insert an item at the front of this list;\r
-            </summary>\r
-            <param name="item">The item to insert.</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.InsertLast(`0)">\r
-            <summary>\r
-            Insert an item at the back of this list.\r
-            </summary>\r
-            <param name="item">The item to insert.</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.FindAll(C5.Filter{`0})">\r
-            <summary>\r
-            Create a new list consisting of the items of this list satisfying a \r
-            certain predicate.\r
-            </summary>\r
-            <param name="filter">The filter delegate defining the predicate.</param>\r
-            <returns>The new list.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.Map``1(C5.Mapper{`0,``0})">\r
-            <summary>\r
-            Create a new list consisting of the results of mapping all items of this\r
-            list. The new list will use the default hasher for the item type V.\r
-            </summary>\r
-            <typeparam name="V">The type of items of the new list</typeparam>\r
-            <param name="mapper">The delegate defining the map.</param>\r
-            <returns>The new list.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.Map``1(C5.Mapper{`0,``0},C5.IHasher{``0})">\r
-            <summary>\r
-            Create a new list consisting of the results of mapping all items of this\r
-            list. The new list will use a specified hasher for the item type.\r
-            </summary>\r
-            <typeparam name="V">The type of items of the new list</typeparam>\r
-            <param name="mapper">The delegate defining the map.</param>\r
-            <param name="hasher">The hasher to use for the new list</param>\r
-            <returns>The new list.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.Remove">\r
-            <summary>\r
-            Remove one item from the list: from the front if <code>FIFO</code>\r
-            is true, else from the back.\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is empty.\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.RemoveFirst">\r
-            <summary>\r
-            Remove one item from the fromnt of the list.\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is empty.\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.RemoveLast">\r
-            <summary>\r
-            Remove one item from the back of the list.\r
-            </summary>\r
-            <exception cref="T:System.InvalidOperationException"> if this list is empty.</exception>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.View(System.Int32,System.Int32)">\r
-            <summary>\r
-            Create a list view on this list. \r
-            <exception cref="T:System.ArgumentOutOfRangeException"/> if the start or count is negative\r
-            <exception cref="T:System.ArgumentException"/> if the range does not fit within list.\r
-            </summary>\r
-            <param name="start">The index in this list of the start of the view.</param>\r
-            <param name="count">The size of the view.</param>\r
-            <returns>The new list view.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.Slide(System.Int32)">\r
-            <summary>\r
-            Slide this list view along the underlying list.\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is not a view.\r
-            <exception cref="T:System.ArgumentOutOfRangeException"/> if the operation\r
-            would bring either end of the view outside the underlying list.\r
-            </summary>\r
-            <param name="offset">The signed amount to slide: positive to slide\r
-            towards the end.</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.Slide(System.Int32,System.Int32)">\r
-            <summary>\r
-            Slide this list view along the underlying list, changing its size.\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is not a view.\r
-            <exception cref="T:System.ArgumentOutOfRangeException"/> if the operation\r
-            would bring either end of the view outside the underlying list.\r
-            </summary>\r
-            <param name="offset">The signed amount to slide: positive to slide\r
-            towards the end.</param>\r
-            <param name="size">The new size of the view.</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.Reverse">\r
-            <summary>\r
-            Reverst the list so the items are in the opposite sequence order.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.Reverse(System.Int32,System.Int32)">\r
-            <summary>\r
-            Reverst part of the list so the items are in the opposite sequence order.\r
-            <exception cref="T:System.ArgumentException"/> if the count is negative.\r
-            <exception cref="T:System.ArgumentOutOfRangeException"/> if the part does not fit\r
-            into the list.\r
-            </summary>\r
-            <param name="start">The index of the start of the part to reverse.</param>\r
-            <param name="count">The size of the part to reverse.</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.IsSorted(C5.IComparer{`0})">\r
-            <summary>\r
-            Check if this list is sorted according to a specific sorting order.\r
-            </summary>\r
-            <param name="c">The comparer defining the sorting order.</param>\r
-            <returns>True if the list is sorted, else false.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.Sort(C5.IComparer{`0})">\r
-            <summary>\r
-            Sort the items of the list according to a specific sorting order.\r
-            </summary>\r
-            <param name="c">The comparer defining the sorting order.</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.Shuffle">\r
-            <summary>\r
-            Randonmly shuffle the items of this list. \r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.Shuffle(System.Random)">\r
-            <summary>\r
-            Shuffle the items of this list according to a specific random source.\r
-            </summary>\r
-            <param name="rnd">The random source.</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.IndexOf(`0)">\r
-            <summary>\r
-            Search for an item in the list going forwrds from the start.\r
-            </summary>\r
-            <param name="item">Item to search for.</param>\r
-            <returns>Index of item from start.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.LastIndexOf(`0)">\r
-            <summary>\r
-            Search for an item in the list going backwords from the end.\r
-            </summary>\r
-            <param name="item">Item to search for.</param>\r
-            <returns>Index of of item from the end.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.RemoveAt(System.Int32)">\r
-            <summary>\r
-            Remove the item at a specific position of the list.\r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt;= the size of the collection.\r
-            </summary>\r
-            <param name="i">The index of the item to remove.</param>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.RemoveInterval(System.Int32,System.Int32)">\r
-            <summary>\r
-            Remove all items in an index interval.\r
-            <exception cref="T:System.IndexOutOfRangeException"/>???. \r
-            </summary>\r
-            <param name="start">The index of the first item to remove.</param>\r
-            <param name="count">The number of items to remove.</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.Contains(`0)">\r
-            <summary>\r
-            Check if this collection contains (an item equivalent to according to the\r
-            itemhasher) a particular value.\r
-            </summary>\r
-            <param name="item">The value to check for.</param>\r
-            <returns>True if the items is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.Find(`0@)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, return in the ref argument (a\r
-            binary copy of) the actual value found.\r
-            </summary>\r
-            <param name="item">The value to look for.</param>\r
-            <returns>True if the items is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.Update(`0)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, update the item in the collection \r
-            to with a binary copy of the supplied value. This will only update the first \r
-            mathching item.\r
-            </summary>\r
-            <param name="item">Value to update.</param>\r
-            <returns>True if the item was found and hence updated.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.FindOrAdd(`0@)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, return in the ref argument (a\r
-            binary copy of) the actual value found. Else, add the item to the collection.\r
-            </summary>\r
-            <param name="item">The value to look for.</param>\r
-            <returns>True if the item was found (hence not added).</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.UpdateOrAdd(`0)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, update the item in the collection \r
-            to with a binary copy of the supplied value. This will only update the first \r
-            mathching item.\r
-            </summary>\r
-            <param name="item">Value to update.</param>\r
-            <returns>True if the item was found and hence updated.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.Remove(`0)">\r
-            <summary>\r
-            Remove the first copy of a particular item from this collection. \r
-            </summary>\r
-            <param name="item">The value to remove.</param>\r
-            <returns>True if the item was found (and removed).</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.RemoveWithReturn(`0@)">\r
-            <summary>\r
-            Remove the first copy of a particular item from this collection if found.\r
-            If an item was removed, report a binary copy of the actual item removed in \r
-            the argument.\r
-            </summary>\r
-            <param name="item">The value to remove on input.</param>\r
-            <returns>True if the item was found (and removed).</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.RemoveAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Remove all items in another collection from this one, taking multiplicities into account.\r
-            Matching items will be removed from the front. Current implementation is not optimal.\r
-            </summary>\r
-            <param name="items">The items to remove.</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.Clear">\r
-            <summary>\r
-            Remove all items from this collection, resetting internal array size.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.RetainAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Remove all items not in some other collection from this one, taking multiplicities into account.\r
-            Items are retained front first.  Current implementation is not optimal.\r
-            </summary>\r
-            <param name="items">The items to retain.</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.ContainsAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Check if this collection contains all the values in another collection,\r
-            taking multiplicities into account.\r
-            Current implementation is not optimal.\r
-            </summary>\r
-            <param name="items">The </param>\r
-            <returns>True if all values in <code>items</code>is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.ContainsCount(`0)">\r
-            <summary>\r
-            Count the number of items of the collection equal to a particular value.\r
-            Returns 0 if and only if the value is not in the collection.\r
-            </summary>\r
-            <param name="item">The value to count.</param>\r
-            <returns>The number of copies found.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.RemoveAllCopies(`0)">\r
-            <summary>\r
-            Remove all items equal to a given one.\r
-            </summary>\r
-            <param name="item">The value to remove.</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.Check">\r
-            <summary>\r
-            Check the integrity of the internal data structures of this array list.\r
-            </summary>\r
-            <returns>True if check does not fail.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.Add(`0)">\r
-            <summary>\r
-            Add an item to end of this list.\r
-            </summary>\r
-            <param name="item">The item to add.</param>\r
-            <returns>True</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.AddAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Add the elements from another collection to this collection. \r
-            </summary>\r
-            <param name="items">The items to add.</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.C5#IDirectedEnumerable{T}#Backwards">\r
-            <summary>\r
-            Create a collection containing the same items as this collection, but\r
-            whose enumerator will enumerate the items backwards. The new collection\r
-            will become invalid if the original is modified. Method typicaly used as in\r
-            <code>foreach (T x in coll.Backwards()) {...}</code>\r
-            </summary>\r
-            <returns>The backwards collection.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.Push(`0)">\r
-            <summary>\r
-            Push an item to the top of the stack.\r
-            </summary>\r
-            <param name="item">The item</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.Pop">\r
-            <summary>\r
-            Pop the item at the top of the stack from the stack.\r
-            </summary>\r
-            <returns>The popped item.</returns>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.EnQueue(`0)">\r
-            <summary>\r
-            Enqueue an item at the back of the queue. \r
-            </summary>\r
-            <param name="item">The item</param>\r
-        </member>\r
-        <member name="M:C5.ArrayList`1.DeQueue">\r
-            <summary>\r
-            Dequeue an item from the front of the queue.\r
-            </summary>\r
-            <returns>The item</returns>\r
-        </member>\r
-        <member name="P:C5.ArrayList`1.First">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is empty.\r
-            </summary>\r
-            <value>The first item in this list.</value>\r
-        </member>\r
-        <member name="P:C5.ArrayList`1.Last">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> if this list is empty.\r
-            </summary>\r
-            <value>The last item in this list.</value>\r
-        </member>\r
-        <member name="P:C5.ArrayList`1.FIFO">\r
-            <summary>\r
-            Since <code>Add(T item)</code> always add at the end of the list,\r
-            this describes if list has FIFO or LIFO semantics.\r
-            </summary>\r
-            <value>True if the <code>Remove()</code> operation removes from the\r
-            start of the list, false if it removes from the end.</value>\r
-        </member>\r
-        <member name="P:C5.ArrayList`1.Item(System.Int32)">\r
-            <summary>\r
-            On this list, this indexer is read/write.\r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt;= the size of the collection.\r
-            </summary>\r
-            <value>The i'th item of this list.</value>\r
-            <param name="i">The index of the item to fetch or store.</param>\r
-        </member>\r
-        <member name="P:C5.ArrayList`1.Underlying">\r
-            <summary>\r
-            Null if this list is not a view.\r
-            </summary>\r
-            <value>Underlying list for view.</value>\r
-        </member>\r
-        <member name="P:C5.ArrayList`1.Offset">\r
-            <summary>\r
-            </summary>\r
-            <value>Offset for this list view or 0 for an underlying list.</value>\r
-        </member>\r
-        <member name="P:C5.ArrayList`1.ContainsSpeed">\r
-            <summary>\r
-            The value is symbolic indicating the type of asymptotic complexity\r
-            in terms of the size of this collection (worst-case or amortized as\r
-            relevant).\r
-            </summary>\r
-            <value>Speed.Linear</value>\r
-        </member>\r
-        <member name="P:C5.ArrayList`1.AllowsDuplicates">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>True, indicating array list has bag semantics.</value>\r
-        </member>\r
-        <member name="T:C5.ComparerBuilder.FromComparable`1">\r
-            <summary>\r
-            A default item comparer for an item type that is either generic (IComparable&lt;T&gt;)\r
-            or ordinarily (System.IComparable) comparable.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.ComparerBuilder.FromComparable`1.Examine">\r
-            <summary>\r
-            Create a default comparer\r
-            <exception cref="T:System.ArgumentException"/> if T is not comparable. \r
-            </summary>\r
-            <returns>The comparer</returns>\r
-        </member>\r
-        <member name="T:C5.HasherBuilder.SequencedHasher`2">\r
-            <summary>\r
-            Prototype for an sequenced hasher for IIndexed[W]\r
-            This will use the IIndexed[W] specific operations\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.HasherBuilder.SequencedHasher`2.GetHashCode(`0)">\r
-            <summary>\r
-            Get the hash code with respect to this sequenced hasher\r
-            </summary>\r
-            <param name="item">The item</param>\r
-            <returns>The hash code</returns>\r
-        </member>\r
-        <member name="M:C5.HasherBuilder.SequencedHasher`2.Equals(`0,`0)">\r
-            <summary>\r
-            Check if two items are equal with respect to this sequenced hasher\r
-            </summary>\r
-            <param name="i1">first item</param>\r
-            <param name="i2">second item</param>\r
-            <returns>True if equal</returns>\r
-        </member>\r
-        <member name="T:C5.HasherBuilder.UnsequencedHasher`2">\r
-            <summary>\r
-            Prototype for an unsequenced hasher for ICollection[W]\r
-            This will use the ICollection[W] specific operations\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.HasherBuilder.UnsequencedHasher`2.GetHashCode(`0)">\r
-            <summary>\r
-            Get the hash code with respect to this unsequenced hasher\r
-            </summary>\r
-            <param name="item">The item</param>\r
-            <returns>The hash code</returns>\r
-        </member>\r
-        <member name="M:C5.HasherBuilder.UnsequencedHasher`2.Equals(`0,`0)">\r
-            <summary>\r
-            Check if two items are equal with respect to this unsequenced hasher\r
-            </summary>\r
-            <param name="i1">first item</param>\r
-            <param name="i2">second item</param>\r
-            <returns>True if equal</returns>\r
-        </member>\r
-        <member name="T:C5.HasherBuilder.ByPrototype`1">\r
-            <summary>\r
-            Create a hasher for T that is DefaultValueTypeHasher[T] \r
-            or DefaultReferenceTypeHasher[T] unless T has been \r
-            instatiated to a type of the exact form IIndexed[W] or ICollection[W]\r
-            in which case Examine will return Sequenced- repectively UnsequencedHasher.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.HasherBuilder.ByPrototype`1.Examine">\r
-            <summary>\r
-            See class description\r
-            </summary>\r
-            <returns>The hasher</returns>\r
-        </member>\r
-        <member name="T:C5.HasherBuilder.ByInvoke`1">\r
-            <summary>\r
-            IHasher factory class: examines at instatiation time if T is an\r
-            interface implementing "int GetHashCode()" and "bool Equals(T)".\r
-            If those are not present, MakeHasher will return a default hasher,\r
-            else this class will implement Ihasher[T] via Invoke() on the\r
-            reflected method infos.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.HasherBuilder.ByInvoke`1.MakeHasher">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.HasherBuilder.ByInvoke`1.GetHashCode(`0)">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <param name="item"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.HasherBuilder.ByInvoke`1.Equals(`0,`0)">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <param name="i1"></param>\r
-            <param name="i2"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="T:C5.HasherBuilder.ByRTCG">\r
-            <summary>\r
-            Like ByInvoke, but tries to build a hasher by RTCG to\r
-            avoid the Invoke() overhead. Does not work as intended \r
-            because of a Whidbey RTCG bug.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.HasherBuilder.ByRTCG.CreateHasher``1(System.Reflection.MethodInfo,System.Reflection.MethodInfo)">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <param name="hinfo"></param>\r
-            <param name="einfo"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.HasherBuilder.ByRTCG.build``1">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <typeparam name="T"></typeparam>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.HasherBuilder.ByRTCG.dump">\r
-            <summary>\r
-            \r
-            </summary>\r
-        </member>\r
-        <member name="T:C5.HashSet`1">\r
-            <summary>\r
-            A set collection class based on linear hashing\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.#ctor">\r
-            <summary>\r
-            Create a hash set with natural item hasher and default fill threshold (66%)\r
-            and initial table size (16).\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.#ctor(C5.IHasher{`0})">\r
-            <summary>\r
-            Create a hash set with external item hasher and default fill threshold (66%)\r
-            and initial table size (16).\r
-            </summary>\r
-            <param name="itemhasher">The external item hasher</param>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.#ctor(System.Int32,C5.IHasher{`0})">\r
-            <summary>\r
-            Create a hash set with external item hasher and default fill threshold (66%)\r
-            </summary>\r
-            <param name="capacity">Initial table size (rounded to power of 2, at least 16)</param>\r
-            <param name="itemhasher">The external item hasher</param>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.#ctor(System.Int32,System.Double,C5.IHasher{`0})">\r
-            <summary>\r
-            Create a hash set with external item hasher.\r
-            </summary>\r
-            <param name="capacity">Initial table size (rounded to power of 2, at least 16)</param>\r
-            <param name="fill">Fill threshold (in range 10% to 90%)</param>\r
-            <param name="itemhasher">The external item hasher</param>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.Contains(`0)">\r
-            <summary>\r
-            Check if an item is in the set \r
-            </summary>\r
-            <param name="item">The item to look for</param>\r
-            <returns>True if set contains item</returns>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.Find(`0@)">\r
-            <summary>\r
-            Check if an item (collection equal to a given one) is in the set and\r
-            if so report the actual item object found.\r
-            </summary>\r
-            <param name="item">On entry, the item to look for.\r
-            On exit the item found, if any</param>\r
-            <returns>True if set contains item</returns>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.Update(`0)">\r
-            <summary>\r
-            Check if an item (collection equal to a given one) is in the set and\r
-            if so replace the item object in the set with the supplied one.\r
-            </summary>\r
-            <param name="item">The item object to update with</param>\r
-            <returns>True if item was found (and updated)</returns>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.FindOrAdd(`0@)">\r
-            <summary>\r
-            Check if an item (collection equal to a given one) is in the set.\r
-            If found, report the actual item object in the set,\r
-            else add the supplied one.\r
-            </summary>\r
-            <param name="item">On entry, the item to look for or add.\r
-            On exit the actual object found, if any.</param>\r
-            <returns>True if item was found</returns>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.UpdateOrAdd(`0)">\r
-            <summary>\r
-            Check if an item (collection equal to a supplied one) is in the set and\r
-            if so replace the item object in the set with the supplied one; else\r
-            add the supplied one.\r
-            </summary>\r
-            <param name="item">The item to look for and update or add</param>\r
-            <returns>True if item was updated</returns>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.Remove(`0)">\r
-            <summary>\r
-            Remove an item from the set\r
-            </summary>\r
-            <param name="item">The item to remove</param>\r
-            <returns>True if item was (found and) removed </returns>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.RemoveWithReturn(`0@)">\r
-            <summary>\r
-            Remove an item from the set, reporting the actual matching item object.\r
-            </summary>\r
-            <param name="item">On entry the item to remove.\r
-            On exit, the actual removed item object.</param>\r
-            <returns>True if item was found.</returns>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.RemoveAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Remove all items in a supplied collection from this set.\r
-            </summary>\r
-            <param name="items">The items to remove.</param>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.Clear">\r
-            <summary>\r
-            Remove all items from the set, resetting internal table to initial size.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.RetainAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Remove all items *not* in a supplied collection from this set.\r
-            </summary>\r
-            <param name="items">The items to retain</param>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.ContainsAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Check if all items in a supplied collection is in this set\r
-            (ignoring multiplicities). \r
-            </summary>\r
-            <param name="items">The items to look for.</param>\r
-            <returns>True if all items are found.</returns>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.ToArray">\r
-            <summary>\r
-            Create an array containing all items in this set (in enumeration order).\r
-            </summary>\r
-            <returns>The array</returns>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.ContainsCount(`0)">\r
-            <summary>\r
-            Count the number of times an item is in this set (either 0 or 1).\r
-            </summary>\r
-            <param name="item">The item to look for.</param>\r
-            <returns>1 if item is in set, 0 else</returns>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.RemoveAllCopies(`0)">\r
-            <summary>\r
-            Remove all (at most 1) copies of item from this set.\r
-            </summary>\r
-            <param name="item">The item to remove</param>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.GetEnumerator">\r
-            <summary>\r
-            Create an enumerator for this set.\r
-            </summary>\r
-            <returns>The enumerator</returns>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.Add(`0)">\r
-            <summary>\r
-            Add an item to this set.\r
-            </summary>\r
-            <param name="item">The item to add.</param>\r
-            <returns>True if item was added (i.e. not found)</returns>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.AddAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Add all items of a collection to this set.\r
-            </summary>\r
-            <param name="items">The items to add</param>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.AddAll``1(System.Collections.Generic.IEnumerable{``0})">\r
-            <summary>\r
-            Add the elements from another collection with a more specialized item type \r
-            to this collection. Since this\r
-            collection has set semantics, only items not already in the collection\r
-            will be added.\r
-            </summary>\r
-            <typeparam name="U">The type of items to add</typeparam>\r
-            <param name="items">The items to add</param>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.Check">\r
-            <summary>\r
-            Test internal structure of data (invariants)\r
-            </summary>\r
-            <returns>True if pass</returns>\r
-        </member>\r
-        <member name="M:C5.HashSet`1.BucketSizeDistribution">\r
-            <summary>\r
-            Produce statistics on distribution of bucket sizes. Current implementation is incomplete.\r
-            </summary>\r
-            <returns>Histogram data.</returns>\r
-        </member>\r
-        <member name="P:C5.HashSet`1.Features">\r
-            <summary>\r
-            Show which implementation features was chosen at compilation time\r
-            </summary>\r
-        </member>\r
-        <member name="P:C5.HashSet`1.ContainsSpeed">\r
-            <summary>\r
-            The complexity of the Contains operation\r
-            </summary>\r
-            <value>Always returns Speed.Constant</value>\r
-        </member>\r
-        <member name="P:C5.HashSet`1.AllowsDuplicates">\r
-            <summary>\r
-            Report if this is a set collection.\r
-            </summary>\r
-            <value>Always false</value>\r
-        </member>\r
-        <member name="T:C5.HashSet`1.Feature">\r
-            <summary>\r
-            Enum class to assist printing of compilation alternatives.\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.HashSet`1.Feature.Dummy">\r
-            <summary>\r
-            Nothing\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.HashSet`1.Feature.RefTypeBucket">\r
-            <summary>\r
-            Buckets are of reference type\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.HashSet`1.Feature.ValueTypeBucket">\r
-            <summary>\r
-            Primary buckets are of value type\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.HashSet`1.Feature.LinearProbing">\r
-            <summary>\r
-            Using linear probing to resolve index clashes\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.HashSet`1.Feature.ShrinkTable">\r
-            <summary>\r
-            Shrink table when very sparsely filled\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.HashSet`1.Feature.Chaining">\r
-            <summary>\r
-            Use chaining to resolve index clashes\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.HashSet`1.Feature.InterHasher">\r
-            <summary>\r
-            Use hash function on item hash code\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.HashSet`1.Feature.RandomInterHasher">\r
-            <summary>\r
-            Use a universal family of hash functions on item hash code\r
-            </summary>\r
-        </member>\r
-        <member name="T:C5.GuardedEnumerator`1">\r
-            <summary>\r
-            A read-only wrapper class for a generic enumerator\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.GuardedEnumerator`1.#ctor(System.Collections.Generic.IEnumerator{`0})">\r
-            <summary>\r
-            Create a wrapper around a generic enumerator\r
-            </summary>\r
-            <param name="enumerator">The enumerator to wrap</param>\r
-        </member>\r
-        <member name="M:C5.GuardedEnumerator`1.MoveNext">\r
-            <summary>\r
-            Move wrapped enumerator to next item, or the first item if\r
-            this is the first call to MoveNext. \r
-            </summary>\r
-            <returns>True if enumerator is valid now</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedEnumerator`1.Dispose">\r
-            <summary>\r
-            Dispose wrapped enumerator\r
-            </summary>\r
-        </member>\r
-        <member name="P:C5.GuardedEnumerator`1.Current">\r
-            <summary>\r
-            Undefined if enumerator is not valid (MoveNext hash been called returning true)\r
-            </summary>\r
-            <value>The current item of the wrapped enumerator.</value>\r
-        </member>\r
-        <member name="T:C5.GuardedEnumerable`1">\r
-             <summary>\r
-             A read-only wrapper class for a generic enumerable\r
-            \r
-             <p>This is mainly interesting as a base of other guard classes</p>\r
-             </summary>\r
-        </member>\r
-        <member name="M:C5.GuardedEnumerable`1.#ctor(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Wrap an enumerable in a read-only wrapper\r
-            </summary>\r
-            <param name="enumerable">The enumerable to wrap</param>\r
-        </member>\r
-        <member name="M:C5.GuardedEnumerable`1.GetEnumerator">\r
-            <summary>\r
-            Get an enumerator from the wrapped enumerable\r
-            </summary>\r
-            <returns>The enumerator (itself wrapped)</returns>\r
-        </member>\r
-        <member name="T:C5.GuardedDirectedEnumerable`1">\r
-             <summary>\r
-             A read-only wrapper for a generic directed enumerable\r
-            \r
-             <p>This is mainly interesting as a base of other guard classes</p>\r
-             </summary>\r
-        </member>\r
-        <member name="M:C5.GuardedDirectedEnumerable`1.#ctor(C5.IDirectedEnumerable{`0})">\r
-            <summary>\r
-            Wrap a directed enumerable in a read-only wrapper\r
-            </summary>\r
-            <param name="directedenumerable">the collection to wrap</param>\r
-        </member>\r
-        <member name="M:C5.GuardedDirectedEnumerable`1.Backwards">\r
-            <summary>\r
-            Get a enumerable that enumerates the wrapped collection in the opposite direction\r
-            </summary>\r
-            <returns>The mirrored enumerable</returns>\r
-        </member>\r
-        <member name="P:C5.GuardedDirectedEnumerable`1.Direction">\r
-            <summary>\r
-            <code>Forwards</code> if same, else <code>Backwards</code>\r
-            </summary>\r
-            <value>The enumeration direction relative to the original collection.</value>\r
-        </member>\r
-        <member name="T:C5.GuardedCollectionValue`1">\r
-             <summary>\r
-             A read-only wrapper for an ICollectionValue&lt;T&gt;\r
-            \r
-             <p>This is mainly interesting as a base of other guard classes</p>\r
-             </summary>\r
-        </member>\r
-        <member name="M:C5.GuardedCollectionValue`1.#ctor(C5.ICollectionValue{`0})">\r
-            <summary>\r
-            Wrap a ICollectionValue&lt;T&gt; in a read-only wrapper\r
-            </summary>\r
-            <param name="collection">the collection to wrap</param>\r
-        </member>\r
-        <member name="M:C5.GuardedCollectionValue`1.CopyTo(`0[],System.Int32)">\r
-            <summary>\r
-            Copy the items of the wrapped collection to an array\r
-            </summary>\r
-            <param name="a">The array</param>\r
-            <param name="i">Starting offset</param>\r
-        </member>\r
-        <member name="M:C5.GuardedCollectionValue`1.ToArray">\r
-            <summary>\r
-            Create an array from the items of the wrapped collection\r
-            </summary>\r
-            <returns>The array</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedCollectionValue`1.Apply(C5.Applier{`0})">\r
-            <summary>\r
-            Apply a delegate to all items of the wrapped enumerable.\r
-            </summary>\r
-            <param name="a">The delegate to apply</param>\r
-        </member>\r
-        <member name="M:C5.GuardedCollectionValue`1.Exists(C5.Filter{`0})">\r
-            <summary>\r
-            Check if there exists an item  that satisfies a\r
-            specific predicate in the wrapped enumerable.\r
-            </summary>\r
-            <param name="filter">A filter delegate \r
-            (<see cref="T:C5.Filter!1"/>) defining the predicate</param>\r
-            <returns>True is such an item exists</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedCollectionValue`1.All(C5.Filter{`0})">\r
-            <summary>\r
-            Check if all items in the wrapped enumerable satisfies a specific predicate.\r
-            </summary>\r
-            <param name="filter">A filter delegate \r
-            (<see cref="T:C5.Filter!1"/>) defining the predicate</param>\r
-            <returns>True if all items satisfies the predicate</returns>\r
-        </member>\r
-        <member name="P:C5.GuardedCollectionValue`1.Count">\r
-            <summary>\r
-            Get the size of the wrapped collection\r
-            </summary>\r
-            <value>The size</value>\r
-        </member>\r
-        <member name="P:C5.GuardedCollectionValue`1.CountSpeed">\r
-            <summary>\r
-            The value is symbolic indicating the type of asymptotic complexity\r
-            in terms of the size of this collection (worst-case or amortized as\r
-            relevant).\r
-            </summary>\r
-            <value>A characterization of the speed of the \r
-            <code>Count</code> property in this collection.</value>\r
-        </member>\r
-        <member name="T:C5.GuardedDirectedCollectionValue`1">\r
-             <summary>\r
-             A read-only wrapper for a directed collection\r
-            \r
-             <p>This is mainly interesting as a base of other guard classes</p>\r
-             </summary>\r
-        </member>\r
-        <member name="M:C5.GuardedDirectedCollectionValue`1.#ctor(C5.IDirectedCollectionValue{`0})">\r
-            <summary>\r
-            Wrap a directed collection in a read-only wrapper\r
-            </summary>\r
-            <param name="directedcollection">the collection to wrap</param>\r
-        </member>\r
-        <member name="M:C5.GuardedDirectedCollectionValue`1.Backwards">\r
-            <summary>\r
-            Get a collection that enumerates the wrapped collection in the opposite direction\r
-            </summary>\r
-            <returns>The mirrored collection</returns>\r
-        </member>\r
-        <member name="P:C5.GuardedDirectedCollectionValue`1.Direction">\r
-            <summary>\r
-            <code>Forwards</code> if same, else <code>Backwards</code>\r
-            </summary>\r
-            <value>The enumeration direction relative to the original collection.</value>\r
-        </member>\r
-        <member name="T:C5.GuardedCollection`1">\r
-             <summary>\r
-             A read-only wrapper for an ICollection&lt;T&gt;.\r
-             <see cref="T:C5.ICollection!1"/>\r
-            \r
-             <p>Suitable for wrapping hash tables, <see cref="T:C5.HashSet!1"/>\r
-             and <see cref="T:C5.HashBag!1"/>  </p>\r
-             </summary>\r
-        </member>\r
-        <member name="M:C5.GuardedCollection`1.#ctor(C5.ICollection{`0})">\r
-            <summary>\r
-            Wrap an ICollection&lt;T&gt; in a read-only wrapper\r
-            </summary>\r
-            <param name="collection">the collection to wrap</param>\r
-        </member>\r
-        <member name="M:C5.GuardedCollection`1.Contains(`0)">\r
-            <summary>\r
-            Check if an item is in the wrapped collection\r
-            </summary>\r
-            <param name="item">The item</param>\r
-            <returns>True if found</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedCollection`1.ContainsCount(`0)">\r
-            <summary>\r
-            Count the number of times an item appears in the wrapped collection\r
-            </summary>\r
-            <param name="item">The item</param>\r
-            <returns>The number of copies</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedCollection`1.ContainsAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Check if all items in the argument is in the wrapped collection\r
-            </summary>\r
-            <param name="items">The items</param>\r
-            <returns>True if so</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedCollection`1.Find(`0@)">\r
-            <summary>\r
-            Search for an item in the wrapped collection\r
-            </summary>\r
-            <param name="item">On entry the item to look for, on exit the equivalent item found (if any)</param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedCollection`1.FindOrAdd(`0@)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="item"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedCollection`1.Update(`0)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="item"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedCollection`1.UpdateOrAdd(`0)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="item"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedCollection`1.Remove(`0)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="item"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedCollection`1.RemoveWithReturn(`0@)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="item"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedCollection`1.RemoveAllCopies(`0)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="item"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedCollection`1.RemoveAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="items"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedCollection`1.Clear">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.GuardedCollection`1.RetainAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="items"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedCollection`1.Check">\r
-            <summary>\r
-            Check  wrapped collection for internal consistency\r
-            </summary>\r
-            <returns>True if check passed</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedCollection`1.Add(`0)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="item"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedCollection`1.AddAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="items"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedCollection`1.C5#IExtensible{T}#AddAll``1(System.Collections.Generic.IEnumerable{``0})">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="items"></param>\r
-        </member>\r
-        <member name="P:C5.GuardedCollection`1.IsReadOnly">\r
-            <summary>\r
-            (This is a read-only wrapper)\r
-            </summary>\r
-            <value>True</value>\r
-        </member>\r
-        <member name="P:C5.GuardedCollection`1.ContainsSpeed">\r
-            <summary> </summary>\r
-            <value>Speed of wrapped collection</value>\r
-        </member>\r
-        <member name="P:C5.GuardedCollection`1.AllowsDuplicates">\r
-            <summary> </summary>\r
-            <value>False if wrapped collection has set semantics</value>\r
-        </member>\r
-        <member name="P:C5.GuardedCollection`1.SyncRoot">\r
-            <summary> </summary>\r
-            <value>The sync root of the wrapped collection</value>\r
-        </member>\r
-        <member name="P:C5.GuardedCollection`1.IsEmpty">\r
-            <summary> </summary>\r
-            <value>True if wrapped collection is empty</value>\r
-        </member>\r
-        <member name="T:C5.GuardedSequenced`1">\r
-             <summary>\r
-             A read-only wrapper for a sequenced collection\r
-            \r
-             <p>This is mainly interesting as a base of other guard classes</p>\r
-             </summary>\r
-        </member>\r
-        <member name="M:C5.GuardedSequenced`1.#ctor(C5.ISequenced{`0})">\r
-            <summary>\r
-            Wrap a sequenced collection in a read-only wrapper\r
-            </summary>\r
-            <param name="sorted"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedSequenced`1.Backwards">\r
-            <summary>\r
-            Get a collection that enumerates the wrapped collection in the opposite direction\r
-            </summary>\r
-            <returns>The mirrored collection</returns>\r
-        </member>\r
-        <member name="P:C5.GuardedSequenced`1.Direction">\r
-            <summary>\r
-            <code>Forwards</code> if same, else <code>Backwards</code>\r
-            </summary>\r
-            <value>The enumeration direction relative to the original collection.</value>\r
-        </member>\r
-        <member name="T:C5.GuardedSorted`1">\r
-             <summary>\r
-             A read-only wrapper for a sorted collection\r
-            \r
-             <p>This is mainly interesting as a base of other guard classes</p>\r
-             </summary>\r
-        </member>\r
-        <member name="M:C5.GuardedSorted`1.#ctor(C5.ISorted{`0})">\r
-            <summary>\r
-            Wrap a sorted collection in a read-only wrapper\r
-            </summary>\r
-            <param name="sorted"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedSorted`1.Predecessor(`0)">\r
-            <summary>\r
-            Find the predecessor of the item in the wrapped sorted collection\r
-            </summary>\r
-            <param name="item">The item</param>\r
-            <returns>The predecessor</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedSorted`1.Successor(`0)">\r
-            <summary>\r
-            Find the Successor of the item in the wrapped sorted collection\r
-            </summary>\r
-            <param name="item">The item</param>\r
-            <returns>The Successor</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedSorted`1.WeakPredecessor(`0)">\r
-            <summary>\r
-            Find the weak predecessor of the item in the wrapped sorted collection\r
-            </summary>\r
-            <param name="item">The item</param>\r
-            <returns>The weak predecessor</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedSorted`1.WeakSuccessor(`0)">\r
-            <summary>\r
-            Find the weak Successor of the item in the wrapped sorted collection\r
-            </summary>\r
-            <param name="item">The item</param>\r
-            <returns>The weak Successor</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedSorted`1.Cut(System.IComparable{`0},`0@,System.Boolean@,`0@,System.Boolean@)">\r
-            <summary>\r
-            Run Cut on the wrapped sorted collection\r
-            </summary>\r
-            <param name="c"></param>\r
-            <param name="low"></param>\r
-            <param name="lval"></param>\r
-            <param name="high"></param>\r
-            <param name="hval"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedSorted`1.RangeFrom(`0)">\r
-            <summary>\r
-            Get the specified range from the wrapped collection. \r
-            (The current implementation erroneously does not wrap the result.)\r
-            </summary>\r
-            <param name="bot"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedSorted`1.RangeFromTo(`0,`0)">\r
-            <summary>\r
-            Get the specified range from the wrapped collection. \r
-            (The current implementation erroneously does not wrap the result.)\r
-            </summary>\r
-            <param name="bot"></param>\r
-            <param name="top"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedSorted`1.RangeTo(`0)">\r
-            <summary>\r
-            Get the specified range from the wrapped collection. \r
-            (The current implementation erroneously does not wrap the result.)\r
-            </summary>\r
-            <param name="top"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedSorted`1.RangeAll">\r
-            <summary>\r
-            Get the specified range from the wrapped collection. \r
-            (The current implementation erroneously does not wrap the result.)\r
-            </summary>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedSorted`1.AddSorted(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="items"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedSorted`1.RemoveRangeFrom(`0)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="low"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedSorted`1.RemoveRangeFromTo(`0,`0)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="low"></param>\r
-            <param name="hi"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedSorted`1.RemoveRangeTo(`0)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="hi"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedSorted`1.FindMin">\r
-            <summary>\r
-            Find the minimum of the wrapped collection\r
-            </summary>\r
-            <returns>The minimum</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedSorted`1.DeleteMin">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedSorted`1.FindMax">\r
-            <summary>\r
-            Find the maximum of the wrapped collection\r
-            </summary>\r
-            <returns>The maximum</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedSorted`1.DeleteMax">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="P:C5.GuardedSorted`1.Comparer">\r
-            <summary>\r
-            The comparer object supplied at creation time for the underlying collection\r
-            </summary>\r
-            <value>The comparer</value>\r
-        </member>\r
-        <member name="T:C5.GuardedIndexedSorted`1">\r
-             <summary>\r
-             Read-only wrapper for indexed sorted collections\r
-            \r
-             <p>Suitable for wrapping TreeSet, TreeBag and SortedArray</p>\r
-             </summary>\r
-        </member>\r
-        <member name="M:C5.GuardedIndexedSorted`1.#ctor(C5.IIndexedSorted{`0})">\r
-            <summary>\r
-            Wrap an indexed sorted collection in a read-only wrapper\r
-            </summary>\r
-            <param name="list">the indexed sorted collection</param>\r
-        </member>\r
-        <member name="M:C5.GuardedIndexedSorted`1.RangeFrom(`0)">\r
-            <summary>\r
-            Get the specified range from the wrapped collection. \r
-            (The current implementation erroneously does not wrap the result.)\r
-            </summary>\r
-            <param name="bot"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedIndexedSorted`1.RangeFromTo(`0,`0)">\r
-            <summary>\r
-            Get the specified range from the wrapped collection. \r
-            (The current implementation erroneously does not wrap the result.)\r
-            </summary>\r
-            <param name="bot"></param>\r
-            <param name="top"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedIndexedSorted`1.RangeTo(`0)">\r
-            <summary>\r
-            Get the specified range from the wrapped collection. \r
-            (The current implementation erroneously does not wrap the result.)\r
-            </summary>\r
-            <param name="top"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedIndexedSorted`1.CountFrom(`0)">\r
-            <summary>\r
-            Report the number of items in the specified range of the wrapped collection\r
-            </summary>\r
-            <param name="bot"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedIndexedSorted`1.CountFromTo(`0,`0)">\r
-            <summary>\r
-            Report the number of items in the specified range of the wrapped collection\r
-            </summary>\r
-            <param name="bot"></param>\r
-            <param name="top"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedIndexedSorted`1.CountTo(`0)">\r
-            <summary>\r
-            Report the number of items in the specified range of the wrapped collection\r
-            </summary>\r
-            <param name="top"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedIndexedSorted`1.FindAll(C5.Filter{`0})">\r
-            <summary>\r
-            Run FindAll on the wrapped collection with the indicated filter.\r
-            The result will <b>not</b> be read-only.\r
-            </summary>\r
-            <param name="f"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedIndexedSorted`1.Map``1(C5.Mapper{`0,``0},C5.IComparer{``0})">\r
-            <summary>\r
-            Run Map on the wrapped collection with the indicated mapper.\r
-            The result will <b>not</b> be read-only.\r
-            </summary>\r
-            <param name="m"></param>\r
-            <param name="c">The comparer to use in the result</param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedIndexedSorted`1.IndexOf(`0)">\r
-            <summary>\r
-            Find the (first) index of an item in the wrapped collection\r
-            </summary>\r
-            <param name="item"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedIndexedSorted`1.LastIndexOf(`0)">\r
-            <summary>\r
-            Find the last index of an item in the wrapped collection\r
-            </summary>\r
-            <param name="item"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedIndexedSorted`1.RemoveAt(System.Int32)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="i"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedIndexedSorted`1.RemoveInterval(System.Int32,System.Int32)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="start"></param>\r
-            <param name="count"></param>\r
-        </member>\r
-        <member name="P:C5.GuardedIndexedSorted`1.Item(System.Int32)">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>The i'th item of the wrapped sorted collection</value>\r
-        </member>\r
-        <member name="P:C5.GuardedIndexedSorted`1.Item(System.Int32,System.Int32)">\r
-            <summary> </summary>\r
-            <value>A directed collection of the items in the indicated interval of the wrapped collection</value>\r
-        </member>\r
-        <member name="T:C5.GuardedList`1">\r
-            <summary>\r
-            A read-only wrapper for a generic list collection\r
-            <p>Suitable as a wrapper for LinkedList, HashedLinkedList, ArrayList and HashedArray.\r
-            <see cref="T:C5.LinkedList!1"/>, \r
-            <see cref="T:C5.HashedLinkedList!1"/>, \r
-            <see cref="T:C5.ArrayList!1"/> or\r
-            <see cref="T:C5.HashedArray!1"/>.\r
-            </p>\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.#ctor(C5.IList{`0})">\r
-            <summary>\r
-            Wrap a list in a read-only wrapper\r
-            </summary>\r
-            <param name="list">The list</param>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.Insert(System.Int32,`0)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="i"></param>\r
-            <param name="item"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.InsertFirst(`0)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="item"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.InsertLast(`0)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="item"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.InsertBefore(`0,`0)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="item"></param>\r
-            <param name="target"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.InsertAfter(`0,`0)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="item"></param>\r
-            <param name="target"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.InsertAll(System.Int32,System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="i"></param>\r
-            <param name="items"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.FindAll(C5.Filter{`0})">\r
-            <summary>\r
-            Perform FindAll on the wrapped list. The result is <b>not</b> necessarily read-only.\r
-            </summary>\r
-            <param name="filter">The filter to use</param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.Map``1(C5.Mapper{`0,``0})">\r
-            <summary>\r
-            Perform Map on the wrapped list. The result is <b>not</b> necessarily read-only.\r
-            </summary>\r
-            <typeparam name="V">The type of items of the new list</typeparam>\r
-            <param name="mapper">The mapper to use.</param>\r
-            <returns>The mapped list</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.Map``1(C5.Mapper{`0,``0},C5.IHasher{``0})">\r
-            <summary>\r
-            Perform Map on the wrapped list. The result is <b>not</b> necessarily read-only.\r
-            </summary>\r
-            <typeparam name="V">The type of items of the new list</typeparam>\r
-            <param name="mapper">The delegate defining the map.</param>\r
-            <param name="hasher">The hasher to use for the new list</param>\r
-            <returns>The new list.</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.Remove">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.RemoveFirst">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.RemoveLast">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.View(System.Int32,System.Int32)">\r
-            <summary>\r
-            Create the indicated view on the wrapped list and wrap it read-only.\r
-            </summary>\r
-            <param name="start"></param>\r
-            <param name="count"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.Slide(System.Int32)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="offset"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.Slide(System.Int32,System.Int32)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="offset"></param>\r
-            <param name="size"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.Reverse">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.Reverse(System.Int32,System.Int32)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="start"></param>\r
-            <param name="count"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.IsSorted(C5.IComparer{`0})">\r
-            <summary>\r
-            Check if wrapped list is sorted\r
-            </summary>\r
-            <param name="c">The sorting order to use</param>\r
-            <returns>True if sorted</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.Sort(C5.IComparer{`0})">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="c"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.Shuffle">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.Shuffle(System.Random)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="rnd"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.IndexOf(`0)">\r
-            <summary>\r
-            Find the (first) index of an item in the wrapped collection\r
-            </summary>\r
-            <param name="item"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.LastIndexOf(`0)">\r
-            <summary>\r
-            Find the last index of an item in the wrapped collection\r
-            </summary>\r
-            <param name="item"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.RemoveAt(System.Int32)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="i"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.RemoveInterval(System.Int32,System.Int32)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="start"></param>\r
-            <param name="count"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.Push(`0)">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            <returns>-</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.Pop">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            <returns>-</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.EnQueue(`0)">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            <returns>-</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedList`1.DeQueue">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            <returns>-</returns>\r
-        </member>\r
-        <member name="P:C5.GuardedList`1.First">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>The first item of the wrapped list</value>\r
-        </member>\r
-        <member name="P:C5.GuardedList`1.Last">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>The last item of the wrapped list</value>\r
-        </member>\r
-        <member name="P:C5.GuardedList`1.FIFO">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> if used as setter\r
-            </summary>\r
-            <value>True if wrapped list has FIFO semantics for the Add(T item) and Remove() methods</value>\r
-        </member>\r
-        <member name="P:C5.GuardedList`1.Item(System.Int32)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> if used as setter\r
-            </summary>\r
-            <value>The i'th item of the wrapped list</value>\r
-        </member>\r
-        <member name="P:C5.GuardedList`1.Underlying">\r
-            <summary>\r
-            (This is wrong functionality)\r
-            </summary>\r
-            <value>The wrapped underlying list of the wrapped view </value>\r
-        </member>\r
-        <member name="P:C5.GuardedList`1.Offset">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>The offset of the wrapped list as a view.</value>\r
-        </member>\r
-        <member name="P:C5.GuardedList`1.Item(System.Int32,System.Int32)">\r
-            <summary> </summary>\r
-            <value>A directed collection of the items in the indicated interval of the wrapped collection</value>\r
-        </member>\r
-        <member name="T:C5.GuardedDictionary`2">\r
-             <summary>\r
-             A read-only wrapper for a dictionary.\r
-            \r
-             <p>Suitable for wrapping a HashDictionary. <see cref="T:C5.HashDictionary!2"/></p>\r
-             </summary>\r
-        </member>\r
-        <member name="M:C5.GuardedDictionary`2.#ctor(C5.IDictionary{`0,`1})">\r
-            <summary>\r
-            Wrap a dictionary in a read-only wrapper\r
-            </summary>\r
-            <param name="dict">the dictionary</param>\r
-        </member>\r
-        <member name="M:C5.GuardedDictionary`2.Add(`0,`1)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="key"></param>\r
-            <param name="val"></param>\r
-        </member>\r
-        <member name="M:C5.GuardedDictionary`2.Remove(`0)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="key"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedDictionary`2.Remove(`0,`1@)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="key"></param>\r
-            <param name="val"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedDictionary`2.Clear">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.GuardedDictionary`2.Contains(`0)">\r
-            <summary>\r
-            Check if the wrapped dictionary contains a specific key\r
-            </summary>\r
-            <param name="key">The key</param>\r
-            <returns>True if it does</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedDictionary`2.Find(`0,`1@)">\r
-            <summary>\r
-            Search for a key in the wrapped dictionary, reporting the value if found\r
-            </summary>\r
-            <param name="key">The key</param>\r
-            <param name="val">On exit: the value if found</param>\r
-            <returns>True if found</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedDictionary`2.Update(`0,`1)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="key"></param>\r
-            <param name="val"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedDictionary`2.FindOrAdd(`0,`1@)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="key"></param>\r
-            <param name="val"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedDictionary`2.UpdateOrAdd(`0,`1)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a read-only wrappper\r
-            </summary>\r
-            <param name="key"></param>\r
-            <param name="val"></param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.GuardedDictionary`2.Check">\r
-            <summary>\r
-            Check the internal consistency of the wrapped dictionary\r
-            </summary>\r
-            <returns>True if check passed</returns>\r
-        </member>\r
-        <member name="P:C5.GuardedDictionary`2.Item(`0)">\r
-            <summary>\r
-            <exception cref="T:System.InvalidOperationException"/> since this is a\r
-            read-only wrappper if used as a setter\r
-            </summary>\r
-            <value>Get the value corresponding to a key in the wrapped dictionary</value>\r
-        </member>\r
-        <member name="P:C5.GuardedDictionary`2.Count">\r
-            <summary> </summary>\r
-            <value>The size of the wrapped dictionary</value>\r
-        </member>\r
-        <member name="P:C5.GuardedDictionary`2.IsReadOnly">\r
-            <summary>\r
-            (This is a read-only wrapper)\r
-            </summary>\r
-            <value>True</value>\r
-        </member>\r
-        <member name="P:C5.GuardedDictionary`2.SyncRoot">\r
-            <summary> </summary>\r
-            <value>The sync root of the wrapped dictionary</value>\r
-        </member>\r
-        <member name="P:C5.GuardedDictionary`2.Keys">\r
-            <summary> </summary>\r
-            <value>The collection of keys of the wrapped dictionary</value>\r
-        </member>\r
-        <member name="P:C5.GuardedDictionary`2.Values">\r
-            <summary> </summary>\r
-            <value>The collection of values of the wrapped dictionary</value>\r
-        </member>\r
-        <member name="T:C5.GuardedSortedDictionary`2">\r
-             <summary>\r
-             A read-only wrapper for a sorted dictionary.\r
-            \r
-             <p>Suitable for wrapping a Dictionary. <see cref="T:C5.Dictionary!2"/></p>\r
-             </summary>\r
-        </member>\r
-        <member name="M:C5.GuardedSortedDictionary`2.#ctor(C5.ISortedDictionary{`0,`1})">\r
-            <summary>\r
-            Wrap a sorted dictionary in a read-only wrapper\r
-            </summary>\r
-            <param name="sorteddict">the dictionary</param>\r
-        </member>\r
-        <member name="M:C5.GuardedSortedDictionary`2.Predecessor(`0)">\r
-            <summary>\r
-            Get the entry in the wrapped dictionary whose key is the\r
-            predecessor of a specified key.\r
-            </summary>\r
-            <param name="key">The key</param>\r
-            <returns>The entry</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedSortedDictionary`2.Successor(`0)">\r
-            <summary>\r
-            Get the entry in the wrapped dictionary whose key is the\r
-            successor of a specified key.\r
-            </summary>\r
-            <param name="key">The key</param>\r
-            <returns>The entry</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedSortedDictionary`2.WeakPredecessor(`0)">\r
-            <summary>\r
-            Get the entry in the wrapped dictionary whose key is the\r
-            weak predecessor of a specified key.\r
-            </summary>\r
-            <param name="key">The key</param>\r
-            <returns>The entry</returns>\r
-        </member>\r
-        <member name="M:C5.GuardedSortedDictionary`2.WeakSuccessor(`0)">\r
-            <summary>\r
-            Get the entry in the wrapped dictionary whose key is the\r
-            weak successor of a specified key.\r
-            </summary>\r
-            <param name="key">The key</param>\r
-            <returns>The entry</returns>\r
-        </member>\r
-        <member name="T:C5.SortedArray`1">\r
-            <summary>\r
-            A collection class implementing a sorted dynamic array data structure.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.binarySearch(`0,System.Int32@)">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <param name="item">The item to search for</param>\r
-            <param name="mid">The least index, mid, for which array[mid] >= item</param>\r
-            <returns>True if item found</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.#ctor">\r
-            <summary>\r
-            Create a dynamic sorted array with a natural comparer\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.#ctor(System.Int32)">\r
-            <summary>\r
-            Create a dynamic sorted array with a natural comparer\r
-            and prescribed initial capacity.\r
-            </summary>\r
-            <param name="capacity">The capacity</param>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.#ctor(C5.IComparer{`0})">\r
-            <summary>\r
-            Create a dynamic sorted array with an external comparer\r
-            </summary>\r
-            <param name="c">The comparer</param>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.#ctor(System.Int32,C5.IComparer{`0})">\r
-            <summary>\r
-            Create a dynamic sorted array with an external comparer\r
-            and prescribed initial capacity.\r
-            </summary>\r
-            <param name="capacity">The capacity</param>\r
-            <param name="c">The comparer</param>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.#ctor(System.Int32,C5.IComparer{`0},C5.IHasher{`0})">\r
-            <summary>\r
-            Create a dynamic sorted array with an external comparer, an external hasher\r
-            and prescribed initial capacity.\r
-            </summary>\r
-            <param name="capacity">The capacity</param>\r
-            <param name="c">The comparer</param>\r
-            <param name="h">The hasher (compatible)</param>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.CountFrom(`0)">\r
-            <summary>\r
-            Determine the number of items at or above a supplied threshold.\r
-            </summary>\r
-            <param name="bot">The lower bound (inclusive)</param>\r
-            <returns>The number of matcing items.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.CountFromTo(`0,`0)">\r
-            <summary>\r
-            Determine the number of items between two supplied thresholds.\r
-            </summary>\r
-            <param name="bot">The lower bound (inclusive)</param>\r
-            <param name="top">The upper bound (exclusive)</param>\r
-            <returns>The number of matcing items.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.CountTo(`0)">\r
-            <summary>\r
-            Determine the number of items below a supplied threshold.\r
-            </summary>\r
-            <param name="top">The upper bound (exclusive)</param>\r
-            <returns>The number of matcing items.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.RangeFrom(`0)">\r
-            <summary>\r
-            Query this sorted collection for items greater than or equal to a supplied value.\r
-            </summary>\r
-            <param name="bot">The lower bound (inclusive).</param>\r
-            <returns>The result directed collection.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.RangeFromTo(`0,`0)">\r
-            <summary>\r
-            Query this sorted collection for items between two supplied values.\r
-            </summary>\r
-            <param name="bot">The lower bound (inclusive).</param>\r
-            <param name="top">The upper bound (exclusive).</param>\r
-            <returns>The result directed collection.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.RangeTo(`0)">\r
-            <summary>\r
-            Query this sorted collection for items less than a supplied value.\r
-            </summary>\r
-            <param name="top">The upper bound (exclusive).</param>\r
-            <returns>The result directed collection.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.FindAll(C5.Filter{`0})">\r
-            <summary>\r
-            Create a new indexed sorted collection consisting of the items of this\r
-            indexed sorted collection satisfying a certain predicate.\r
-            </summary>\r
-            <param name="f">The filter delegate defining the predicate.</param>\r
-            <returns>The new indexed sorted collection.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.Map``1(C5.Mapper{`0,``0},C5.IComparer{``0})">\r
-            <summary>\r
-            Create a new indexed sorted collection consisting of the results of\r
-            mapping all items of this list.\r
-            <exception cref="T:System.ArgumentException"/> if the map is not increasing over \r
-            the items of this collection (with respect to the two given comparison \r
-            relations).\r
-            </summary>\r
-            <param name="m">The delegate definging the map.</param>\r
-            <param name="c">The comparion relation to use for the result.</param>\r
-            <returns>The new sorted collection.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.Predecessor(`0)">\r
-            <summary>\r
-            Find the strict predecessor in the sorted collection of a particular value,\r
-            i.e. the largest item in the collection less than the supplied value.\r
-            <exception cref="T:System.InvalidOperationException"/> if no such element exists (the\r
-            supplied  value is less than or equal to the minimum of this collection.)\r
-            </summary>\r
-            <param name="item">The item to find the predecessor for.</param>\r
-            <returns>The predecessor.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.Successor(`0)">\r
-            <summary>\r
-            Find the strict successor in the sorted collection of a particular value,\r
-            i.e. the least item in the collection greater than the supplied value.\r
-            <exception cref="T:System.InvalidOperationException"/> if no such element exists (the\r
-            supplied  value is greater than or equal to the maximum of this collection.)\r
-            </summary>\r
-            <param name="item">The item to find the successor for.</param>\r
-            <returns>The successor.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.WeakPredecessor(`0)">\r
-            <summary>\r
-            Find the weak predecessor in the sorted collection of a particular value,\r
-            i.e. the largest item in the collection less than or equal to the supplied value.\r
-            <exception cref="T:System.InvalidOperationException"/> if no such element exists (the\r
-            supplied  value is less than the minimum of this collection.)\r
-            </summary>\r
-            <param name="item">The item to find the weak predecessor for.</param>\r
-            <returns>The weak predecessor.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.WeakSuccessor(`0)">\r
-            <summary>\r
-            Find the weak successor in the sorted collection of a particular value,\r
-            i.e. the least item in the collection greater than or equal to the supplied value.\r
-            <exception cref="T:System.InvalidOperationException"/> if no such element exists (the\r
-            supplied  value is greater than the maximum of this collection.)\r
-            </summary>\r
-            <param name="item">The item to find the weak successor for.</param>\r
-            <returns>The weak successor.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.Cut(System.IComparable{`0},`0@,System.Boolean@,`0@,System.Boolean@)">\r
-            <summary>\r
-            Perform a search in the sorted collection for the ranges in which a\r
-            non-decreasing function from the item type to <code>int</code> is\r
-            negative, zero respectively positive. If the supplied cut function is\r
-            not non-decreasing, the result of this call is undefined.\r
-            </summary>\r
-            <param name="c">The cut function <code>T</code> to <code>int</code>, given\r
-            as an <code>IComparable&lt;T&gt;</code> object, where the cut function is\r
-            the <code>c.CompareTo(T that)</code> method.</param>\r
-            <param name="low">Returns the largest item in the collection, where the\r
-            cut function is negative (if any).</param>\r
-            <param name="lowIsValid">True if the cut function is negative somewhere\r
-            on this collection.</param>\r
-            <param name="high">Returns the least item in the collection, where the\r
-            cut function is positive (if any).</param>\r
-            <param name="highIsValid">True if the cut function is positive somewhere\r
-            on this collection.</param>\r
-            <returns></returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.RangeAll">\r
-            <summary>\r
-            Create a directed collection with the same items as this collection.\r
-            </summary>\r
-            <returns>The result directed collection.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.AddSorted(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Add all the items from another collection with an enumeration order that \r
-            is increasing in the items.\r
-            <exception cref="T:System.ArgumentException"/> if the enumerated items turns out\r
-            not to be in increasing order.\r
-            </summary>\r
-            <param name="items">The collection to add.</param>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.RemoveRangeFrom(`0)">\r
-            <summary>\r
-            Remove all items of this collection above or at a supplied threshold.\r
-            </summary>\r
-            <param name="low">The lower threshold (inclusive).</param>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.RemoveRangeFromTo(`0,`0)">\r
-            <summary>\r
-            Remove all items of this collection between two supplied thresholds.\r
-            </summary>\r
-            <param name="low">The lower threshold (inclusive).</param>\r
-            <param name="hi">The upper threshold (exclusive).</param>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.RemoveRangeTo(`0)">\r
-            <summary>\r
-            Remove all items of this collection below a supplied threshold.\r
-            </summary>\r
-            <param name="hi">The upper threshold (exclusive).</param>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.Contains(`0)">\r
-            <summary>\r
-            Check if this collection contains (an item equivalent to according to the\r
-            itemhasher) a particular value.\r
-            </summary>\r
-            <param name="item">The value to check for.</param>\r
-            <returns>True if the items is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.Find(`0@)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, return in the ref argument (a\r
-            binary copy of) the actual value found.\r
-            </summary>\r
-            <param name="item">The value to look for.</param>\r
-            <returns>True if the items is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.FindOrAdd(`0@)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, return in the ref argument (a\r
-            binary copy of) the actual value found. Else, add the item to the collection.\r
-            </summary>\r
-            <param name="item">The value to look for.</param>\r
-            <returns>True if the item was added (hence not found).</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.Update(`0)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, update the item in the collection \r
-            to with a binary copy of the supplied value. If the collection has bag semantics,\r
-            it is implementation dependent if this updates all equivalent copies in\r
-            the collection or just one.\r
-            </summary>\r
-            <param name="item">Value to update.</param>\r
-            <returns>True if the item was found and hence updated.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.UpdateOrAdd(`0)">\r
-            <summary>\r
-            Check if this collection contains an item equivalent according to the\r
-            itemhasher to a particular value. If so, update the item in the collection \r
-            to with a binary copy of the supplied value; else add the value to the collection. \r
-            </summary>\r
-            <param name="item">Value to add or update.</param>\r
-            <returns>True if the item was found and updated (hence not added).</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.Remove(`0)">\r
-            <summary>\r
-            Remove a particular item from this collection. If the collection has bag\r
-            semantics only one copy equivalent to the supplied item is removed. \r
-            </summary>\r
-            <param name="item">The value to remove.</param>\r
-            <returns>True if the item was found (and removed).</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.RemoveWithReturn(`0@)">\r
-            <summary>\r
-            Remove a particular item from this collection if found. If the collection\r
-            has bag semantics only one copy equivalent to the supplied item is removed,\r
-            which one is implementation dependent. \r
-            If an item was removed, report a binary copy of the actual item removed in \r
-            the argument.\r
-            </summary>\r
-            <param name="item">The value to remove on input.</param>\r
-            <returns>True if the item was found (and removed).</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.RemoveAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Remove all items in another collection from this one. \r
-            </summary>\r
-            <param name="items">The items to remove.</param>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.RetainAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Remove all items not in some other collection from this one. \r
-            </summary>\r
-            <param name="items">The items to retain.</param>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.ContainsAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Check if this collection contains all the values in another collection.\r
-            Multiplicities are not taken into account.\r
-            </summary>\r
-            <param name="items">The </param>\r
-            <returns>True if all values in <code>items</code>is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.ContainsCount(`0)">\r
-            <summary>\r
-            Count the number of items of the collection equal to a particular value.\r
-            Returns 0 if and only if the value is not in the collection.\r
-            </summary>\r
-            <param name="item">The value to count.</param>\r
-            <returns>The number of copies found (0 or 1).</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.RemoveAllCopies(`0)">\r
-            <summary>\r
-            Remove all (0 or 1) items equivalent to a given value.\r
-            </summary>\r
-            <param name="item">The value to remove.</param>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.Check">\r
-            <summary>\r
-            Check the integrity of the internal data structures of this collection.\r
-            Only avaliable in DEBUG builds???\r
-            </summary>\r
-            <returns>True if check does not fail.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.Add(`0)">\r
-            <summary>\r
-            Add an item to this collection if possible. If this collection has set\r
-            semantics, the item will be added if not already in the collection. If\r
-            bag semantics, the item will always be added.\r
-            </summary>\r
-            <param name="item">The item to add.</param>\r
-            <returns>True if item was added.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.AddAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Add the elements from another collection to this collection. If this\r
-            collection has set semantics, only items not already in the collection\r
-            will be added.\r
-            </summary>\r
-            <param name="items">The items to add.</param>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.AddAll``1(System.Collections.Generic.IEnumerable{``0})">\r
-            <summary>\r
-            Add the elements from another collection with a more specialized item type \r
-            to this collection. Since this\r
-            collection has set semantics, only items not already in the collection\r
-            will be added.\r
-            </summary>\r
-            <typeparam name="U">The type of items to add</typeparam>\r
-            <param name="items">The items to add</param>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.FindMin">\r
-            <summary>\r
-            Find the current least item of this priority queue.\r
-            </summary>\r
-            <returns>The least item.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.DeleteMin">\r
-            <summary>\r
-            Remove the least item from this  priority queue.\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.FindMax">\r
-            <summary>\r
-            Find the current largest item of this priority queue.\r
-            </summary>\r
-            <returns>The largest item.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.DeleteMax">\r
-            <summary>\r
-            Remove the largest item from this  priority queue.\r
-            </summary>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.IndexOf(`0)">\r
-            <summary>\r
-            Searches for an item in the list going forwrds from the start.\r
-            </summary>\r
-            <param name="item">Item to search for.</param>\r
-            <returns>Index of item from start.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.LastIndexOf(`0)">\r
-            <summary>\r
-            Searches for an item in the list going backwords from the end.\r
-            </summary>\r
-            <param name="item">Item to search for.</param>\r
-            <returns>Index of of item from the end.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.RemoveAt(System.Int32)">\r
-            <summary>\r
-            Remove the item at a specific position of the list.\r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt;= the size of the collection.\r
-            </summary>\r
-            <param name="i">The index of the item to remove.</param>\r
-            <returns>The removed item.</returns>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.RemoveInterval(System.Int32,System.Int32)">\r
-            <summary>\r
-            Remove all items in an index interval.\r
-            <exception cref="T:System.IndexOutOfRangeException"/>???. \r
-            </summary>\r
-            <param name="start">The index of the first item to remove.</param>\r
-            <param name="count">The number of items to remove.</param>\r
-        </member>\r
-        <member name="M:C5.SortedArray`1.C5#IDirectedEnumerable{T}#Backwards">\r
-            <summary>\r
-            Create a collection containing the same items as this collection, but\r
-            whose enumerator will enumerate the items backwards. The new collection\r
-            will become invalid if the original is modified. Method typicaly used as in\r
-            <code>foreach (T x in coll.Backwards()) {...}</code>\r
-            </summary>\r
-            <returns>The backwards collection.</returns>\r
-        </member>\r
-        <member name="P:C5.SortedArray`1.Features">\r
-            <summary>\r
-            A debugging artifact. To be removed.\r
-            </summary>\r
-            <value></value>\r
-        </member>\r
-        <member name="P:C5.SortedArray`1.ContainsSpeed">\r
-            <summary>\r
-            The value is symbolic indicating the type of asymptotic complexity\r
-            in terms of the size of this collection (worst-case).\r
-            </summary>\r
-            <value>Speed.Log</value>\r
-        </member>\r
-        <member name="P:C5.SortedArray`1.AllowsDuplicates">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>False since this collection has set semantics</value>\r
-        </member>\r
-        <member name="P:C5.SortedArray`1.Comparer">\r
-            <summary>\r
-            The comparer object supplied at creation time for this collection\r
-            </summary>\r
-            <value>The comparer</value>\r
-        </member>\r
-        <member name="P:C5.SortedArray`1.Item(System.Int32)">\r
-            <summary>\r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt;= the size of the collection.\r
-            </summary>\r
-            <value>The i'th item of this list.</value>\r
-            <param name="i">the index to lookup</param>\r
-        </member>\r
-        <member name="T:C5.SortedArray`1.Feature">\r
-            <summary>\r
-            A debugging artifact. To be removed.\r
-            </summary>\r
-        </member>\r
-        <member name="F:C5.SortedArray`1.Feature.Standard">\r
-            <summary>\r
-            A debugging artifact. To be removed.\r
-            </summary>\r
-        </member>\r
-        <member name="T:C5.HashedArrayList`1">\r
-            <summary>\r
-            A set collection based on a dynamic  array combined with a hash index\r
-            for item to index lookup.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.indexOf(`0)">\r
-            <summary>\r
-            Internal version of IndexOf without modification checks.\r
-            </summary>\r
-            <param name="item">Item to look for</param>\r
-            <returns>The index of first occurrence</returns>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.lastIndexOf(`0)">\r
-            <summary>\r
-            Internal version of LastIndexOf without modification checks.\r
-            </summary>\r
-            <param name="item">Item to look for</param>\r
-            <returns>The index of last occurrence</returns>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.insert(System.Int32,`0)">\r
-            <summary>\r
-            Internal version of Insert with no modification checks.\r
-            <exception cref="T:System.ArgumentException"/> if item already in list.\r
-            </summary>\r
-            <param name="i">Index to insert at</param>\r
-            <param name="item">Item to insert</param>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.removeAt(System.Int32)">\r
-            <summary>\r
-            Internal version of RemoveAt with no modification checks.\r
-            </summary>\r
-            <param name="i">Index to remove at</param>\r
-            <returns>The removed item</returns>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.#ctor">\r
-            <summary>\r
-            Create a hashed array list with the natural hasher \r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.#ctor(System.Int32)">\r
-            <summary>\r
-            Create a hashed array list with the natural hasher and specified capacity\r
-            </summary>\r
-            <param name="cap">The initial capacity</param>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.#ctor(C5.IHasher{`0})">\r
-            <summary>\r
-            Create a hashed array list with an external hasher\r
-            </summary>\r
-            <param name="hasher">The external hasher</param>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.#ctor(System.Int32,C5.IHasher{`0})">\r
-            <summary>\r
-            Create a hashed array list with an external hasher and specified capacity\r
-            </summary>\r
-            <param name="capacity">The initial capacity</param>\r
-            <param name="hasher">The external hasher</param>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.InsertAll(System.Int32,System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Insert into this list all items from an enumerable collection starting \r
-            at a particular index.\r
-            <exception cref="T:System.IndexOutOfRangeException"/> if i is negative or\r
-            &gt; the size of the collection.\r
-            <exception cref="T:System.InvalidOperationException"/> if one of the items to insert is\r
-            already in the list.\r
-            </summary>\r
-            <param name="i">Index to start inserting at</param>\r
-            <param name="items">Items to insert</param>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.InsertBefore(`0,`0)">\r
-            <summary>\r
-            Insert an item right before the first occurrence of some target item.\r
-            <exception cref="T:System.ArgumentException"/> if target   is not found.\r
-            <exception cref="T:System.InvalidOperationException"/> if the item to insert is\r
-            already in the list.\r
-            </summary>\r
-            <param name="item">The item to insert.</param>\r
-            <param name="target">The target before which to insert.</param>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.InsertAfter(`0,`0)">\r
-            <summary>\r
-            Insert an item right after the last(???) occurrence of some target item.\r
-            <exception cref="T:System.ArgumentException"/> if target   is not found.\r
-            <exception cref="T:System.InvalidOperationException"/> if the item to insert is\r
-            already in the list.\r
-            </summary>\r
-            <param name="item">The item to insert.</param>\r
-            <param name="target">The target after which to insert.</param>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.View(System.Int32,System.Int32)">\r
-            <summary>\r
-            Create a list view on this list. \r
-            <exception cref="T:System.ArgumentOutOfRangeException"/> if the view would not fit into\r
-            this list.\r
-            </summary>\r
-            <param name="start">The index in this list of the start of the view.</param>\r
-            <param name="count">The size of the view.</param>\r
-            <returns>The new list view.</returns>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.Reverse(System.Int32,System.Int32)">\r
-            <summary>\r
-            Reverst part of the list so the items are in the opposite sequence order.\r
-            <exception cref="T:System.ArgumentException"/> if the count is negative.\r
-            <exception cref="T:System.ArgumentOutOfRangeException"/> if the part does not fit\r
-            into the list.\r
-            </summary>\r
-            <param name="start">The index of the start of the part to reverse.</param>\r
-            <param name="count">The size of the part to reverse.</param>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.Sort(C5.IComparer{`0})">\r
-            <summary>\r
-            Sort the items of the list according to a specific sorting order.\r
-            </summary>\r
-            <param name="c">The comparer defining the sorting order.</param>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.Shuffle(System.Random)">\r
-            <summary>\r
-            Shuffle the items of this list according to a specific random source.\r
-            </summary>\r
-            <param name="rnd">The random source.</param>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.RemoveInterval(System.Int32,System.Int32)">\r
-            <summary>\r
-            Remove all items in an index interval.\r
-            <exception cref="T:System.IndexOutOfRangeException"/>???. \r
-            </summary>\r
-            <param name="start">The index of the first item to remove.</param>\r
-            <param name="count">The number of items to remove.</param>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.Contains(`0)">\r
-            <summary>\r
-            Check if this collection contains (an item equivalent to according to the\r
-            itemhasher) a particular value.\r
-            </summary>\r
-            <param name="item">The value to check for.</param>\r
-            <returns>True if the items is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.Remove(`0)">\r
-            <summary>\r
-            Remove the first copy of a particular item from this collection. \r
-            </summary>\r
-            <param name="item">The value to remove.</param>\r
-            <returns>True if the item was found (and removed).</returns>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.RemoveAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Remove all items in another collection from this one, taking multiplicities into account.\r
-            Matching items will be removed from the front. Current implementation is not optimal.\r
-            </summary>\r
-            <param name="items">The items to remove.</param>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.Clear">\r
-            <summary>\r
-            Remove all items from this collection, resetting internal array size.\r
-            </summary>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.RetainAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Remove all items not in some other collection from this one.\r
-            </summary>\r
-            <param name="items">The items to retain.</param>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.ContainsAll(System.Collections.Generic.IEnumerable{`0})">\r
-            <summary>\r
-            Check if this collection contains all the values in another collection.\r
-            </summary>\r
-            <param name="items">The </param>\r
-            <returns>True if all values in <code>items</code>is in this collection.</returns>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.ContainsCount(`0)">\r
-            <summary>\r
-            Count the number of items of the collection equal to a particular value.\r
-            Returns 0 if and only if the value is not in the collection.\r
-            </summary>\r
-            <param name="item">The value to count.</param>\r
-            <returns>The number of copies found (0 or 1).</returns>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.RemoveAllCopies(`0)">\r
-            <summary>\r
-            Remove all items equal to a given one.\r
-            </summary>\r
-            <param name="item">The value to remove.</param>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.Check">\r
-            <summary>\r
-            Check the integrity of the internal data structures of this array list.\r
-            </summary>\r
-            <returns>True if check does not fail.</returns>\r
-        </member>\r
-        <member name="M:C5.HashedArrayList`1.Add(`0)">\r
-            <summary>\r
-            Add an item to end of this list if not already in list.\r
-            </summary>\r
-            <param name="item">The item to add.</param>\r
-            <returns>True if item was added</returns>\r
-        </member>\r
-        <member name="P:C5.HashedArrayList`1.ContainsSpeed">\r
-            <summary>\r
-            The value is symbolic indicating the type of asymptotic complexity\r
-            in terms of the size of this collection (expected).\r
-            </summary>\r
-            <value>Speed.Constant</value>\r
-        </member>\r
-        <member name="P:C5.HashedArrayList`1.AllowsDuplicates">\r
-            <summary>\r
-            \r
-            </summary>\r
-            <value>False, indicating hashed array list has set semantics.</value>\r
-        </member>\r
-    </members>\r
-</doc>\r