public class UndoableDictionary<TKey, TValue> : UpdateableCollection<TValue>
{
	public override void TestFunc ()
	{
	}
}

public abstract class UpdateableCollection<T>
{
	internal void AddReferences ()
	{
	}

	public virtual void TestFunc ()
	{
	}

	class X : UndoableDictionary<int, int>
	{
	}

}

public class C
{
	public static int Main ()
	{
		new UndoableDictionary<string, decimal> ();
		return 0;
	}
}