
class Test1<T, T2, T3> {
    T value1;
    T2 value2;
    T3 value3;

    T3 method1(T value) {
        return self.value3;
    }
}

class Test2<T, T2, T3, T4, T5, T6> extends Test1<T3, T6, T5> {
}

class Operator <T, T2, T3, T4, T5, T6 extends Test2<T4, T2, T, T2, T3, T5>, T7> {
    T3 call(T6 a, T b) {
        return a.method1(b);
    }
}

