using System;
using System.Collections.Generic;

public class Test
{
	public static void Main ()
	{
		Foo<int> nav = new Foo<int> ();
		IEnumerable<int> t = TestRoutine<int> (new int [] { 1 }, nav);
		new List<int> (t);
	}

	public static IEnumerable<T> TestRoutine<T> (IEnumerable<T> a, Foo<T> f)
	{
		f.CreateItem<int> ();
		foreach (T n in a) {
			yield return n;
		}
	}

}
public class Foo<T>
{
	public void CreateItem<G> ()
	{
	}
}