using System.Collections.Generic;
int[] xs = new[] { 1, 2, 3 };
IEnumerable<int> ys = xs.AsEnumerable();
Foo<IEnumerable<int>> foo1 = xs;
Foo<IEnumerable<int>> foo2 = ys;
Foo<IEnumerable<int>> foo3 = (Foo<IEnumerable<int>>)ys;
Console.WriteLine("Hello World");
public Foo(T bar) => Bar = bar;
public static implicit operator Foo<T>(T bar) => new(bar);