В некоторых случаях вы можете пойти с наследством:
public class MyList<T1, T2> : List<Tuple<IEnumerable<HashSet<T1>>, IComparable<T2>>> { }
public void Meth()
{
var x = new MyList<int, bool>();
}
Хотя не в вашем конкретном случае, так как KeyValuePair запечатан: - (