interface Eff<A, B> {
    B f(A a);
}

class Disfunction {
    public static <A, B> Eff<A, B> vary(final Eff<? super A, ? extends B> f) {
        return a -> f.f(a);
    }

    public static <C, A extends C, B, D extends B> Eff<Eff<C, D>, Eff<A, B>> vary() {
        return Disfunction::<A, B>vary;
    }
}

@@ -297,11 +297,139 @@
 y;%0A    %7D
+%0A%0A    public static %3CC, A extends C, B, D extends B%3E Eff%3CEff%3CC, D%3E, Eff%3CA, B%3E%3E vary1() %7B%0A        return Disfunction::vary;%0A    %7D
 %0A%7D%0A

extend testdata for IDEA-93587 (cherry picked from commit d4939f7b93989a0e3387c225de335ef7bf19949f)