using System; public interface IList[R] { Map[S] ( item : S) : int; } public class List[T] : IList[T] { public Map[U] ( _item : U) : int { 1; } } public class SpecialList[V] : IList[V] { public Map[W] ( _item : W) : int { 2; } } class X { static Main () : int { mutable list_ = List (); mutable result = list_.Map ("Hello"); if (result != 1) { 1; } else { mutable list2 = SpecialList (); mutable result2 = list2.Map ("World"); if (result2 != 2) { 2; } else { 0; } } } } /* BEGIN-OUTPUT END-OUTPUT */