``` typescript interface A<a> { brand: 'a'; nested: a; } interface B<a> { brand: 'b'; nested: a; } type C<a> = A<a> | B<a>; type D = C<D> | string; // <-- i wish ```