public class TestContraVariant { main(x, y) { var y2 = m(x, y).snd(); var z = null; y2 = z; return new Pair(x,z); } m(x, y) { var x2 = main(x, y).fst(); var z = null; x2 = z; return new Pair(z, y); } }