using System;
using System.Collections.Generic;
using System.Linq.Expressions;

class Foo<T>
{
	public bool ContainsAll<U> (IEnumerable<U> items) where U : T
	{
		foreach (U item in items) {
			Expression<Func<bool>> e = () => !Contains (item);
			if (!e.Compile () ())
				return false;
		}

		return true;
	}

	public bool Contains (T t)
	{
		return false;
	}
}

class Program
{
	public static int Main ()
	{
		var x = new Foo<int> ();
		return x.ContainsAll (new [] { 4, 6, 78 }) ? 0 : 1;
	}
}