1 // Compiler options: -langversion:future
3 delegate T Covariant
<out T
> ();
4 delegate void Contra
<in T
> (T t
);
5 delegate TR CoContra
<out TR
, in T
> (T t
);
6 delegate void None
<T
> (T t
);
8 delegate Covariant
<Contra
<Contra
<Covariant
<Covariant
<Covariant
<Covariant
<Covariant
<U
>>>>>>>> Test
<out U
> ();
9 delegate Contra
<Covariant
<Contra
<Contra
<Covariant
<Covariant
<Covariant
<Covariant
<Covariant
<U
>>>>>>>>> Test2
<in U
> ();
10 delegate Contra
<Contra
<Covariant
<Covariant
<Covariant
<Covariant
<Contra
<Contra
<U
>>>>>>>> Test3
<out U
> ();
11 delegate Contra
<Contra
<Covariant
<Covariant
<Contra
<Contra
<Contra
<Contra
<U
>>>>>>>> Test4
<out U
> ();
12 delegate Contra
<Contra
<Covariant
<Covariant
<Contra
<Contra
<Contra
<U
>>>>>>> Test5
<in U
> ();
13 delegate void Test6
<in U
> (Covariant
<Contra
<Contra
<Covariant
<Covariant
<Covariant
<Covariant
<Covariant
<U
>>>>>>>> t
);
15 delegate void Both
<in U
, out V
> (CoContra
<U
, V
> p
);
16 delegate void Both2
<in U
, out V
> (CoContra
<U
, Contra
<U
>> p
);
17 delegate void Both3
<in U
, out V
> (CoContra
<U
, Contra
<int>> p
);
18 delegate void Both4
<in U
, out V
> (Both
<V
, U
> b
);
19 delegate void Both5
<in U
, out V
> (Both
<V
, int> b
);
23 public static void Main ()