namespace HasherBuilder { public class ByPrototype<S> { public static IHasher<S> Examine() { return null; } } } public interface IHasher<T> { } public class ArrayList<U> { public IHasher<U> GetHasher () { return HasherBuilder.ByPrototype<U>.Examine(); } } class X { public static void Main () { } }