interface IObserver<in T>;
{}

interface IObservable<out T>;
{}

public delegate void DContravariant<in A>(A argument);

public delegate A DCovariant<out A>();

void MethodWithGenericParameter<T>();

private static List<string> leftHalfDiamond = new List<string>();

private static List<Tuple<int, string>> leftHalfDiamond = new List<Tuple<int, string>>();
