When the compiler automatically adds stubs for unimplemented interface methods, they can conflict with other defined or stubbed methods which differ by return type only.
The compiler will create a stub for "GetEnumerator() as IEnumerator" as defined by IEnumerable, and for "GetEnumerator() as IEnumerator of int" as defined by IEnumerable of int. The two methods, differing only by return type, create a conflict.
Proposed solution: use explicit interface implementation for interface stubs. This will work well since the stubs are empty anyway, so there's no use in listing them as public members of the stubbed class.