>>208
そういう意味です。申し訳ない。
言われてみればそうかもしれない。
S が class ならそういう挙動になると思う。
struct なら特殊化されそうな気がするけど、どうなんだろう。

void Method<T>(this MyList<T> list, ...) { }
みたいに、IEnumerable<> を実装したクラスを引数に取るように、わざわざ定義してあげるしかないのかな。
new されないように LINQ 使おうとすると、メソッド分だけ struct :IEnumerator<> を実装しないといけなくなりそうだから現実的じゃないね。