Why does the following cause a compilation error?

```
interface IX {}
interface IY {}
class XY : IX, IY {}

void Foo<T>() where T : IX, IY
{
    T xy = new XY();
    …   // ^^^^^^^^
}       // error: "Implicit conversion of type 'XY' to 'T' is not possible."

```

---

**Note:** The same error would occur if `class XY : IX` and `where T : IX`. However, I have chosen a more complex example because a simpler one might have provoked circumventive answers such as, *"Just change the type of `xy` from `T` to `IX`"*, which would not answer *why* this conversion fails.