/* Example from Hansen and Sestoft: C# Precisely */ class C where T: class{ T f = null; } class D where U: struct{ U? f; } class Appl{ // Does NOT compile: C c = new C(); D d = new D(); // OK: C c1 = new C(); D d1 = new D(); } class A{}