namespace C5
{
	public class HashedArrayList<T>
	{
		public void Test ()
		{
			new HashSet <KeyValuePair<T,int>> (new KeyValuePairHasher<T,int> ());
		}
	}

	public class HashSet<T>
	{
		public HashSet (IHasher<T> itemhasher)
		{ }
	}

	public interface IHasher<T>
	{
	}

	public struct KeyValuePair<K,V>
	{
	}

	public sealed class KeyValuePairHasher<K,V>: IHasher<KeyValuePair<K,V>>
	{
	}
}

class X
{
	public static void Main ()
	{ }
}