using System.Collections.Generic;
public static void Main(){}
public static IList<IGreeter> Local() {
public static IList<IGreeter> Foreigner() {
return ConcreteForeigner();
public static IList<Hello> ConcreteLocal() {
return new List<Hello>();
public static IList<Ciao> ConcreteForeigner() {
public interface IGreeter { }
public class Hello : IGreeter { }
public class Ciao : IGreeter { }