// Compiler options: -langversion:default

using System;
using System.Collections;

class X {
	static IEnumerator GetIt ()
	{
		yield return 1;
		yield return 2;
		yield return 3;
	}
	
	static IEnumerable GetIt2 ()
	{
		yield return 1;
		yield return 2;
		yield return 3;
	}

	public static int Main ()
	{
		IEnumerator e = GetIt ();
		int total = 0;
		
		while (e.MoveNext ()){
			Console.WriteLine ("Value=" + e.Current);
			total += (int) e.Current;
		}

		if (total != 6)
			return 1;

		total = 0;
		foreach (int i in GetIt2 ()){
			Console.WriteLine ("Value=" + i);
			total += i;
		}
		if (total != 6)
			return 2;
		
		return 0;
	}
}