package test

public trait SamSubinterfaceOfTwo {

    public trait Sub : test.SamSubinterfaceOfTwo.Super1, test.SamSubinterfaceOfTwo.Super2<kotlin.String> {
        public abstract override /*2*/ /*fake_override*/ fun f(): kotlin.String?
    }

    public trait Super1 {
        public abstract fun f(): kotlin.CharSequence?
    }

    public trait Super2</*0*/ T> {
        public abstract fun f(): T?
    }
}

package test.SamSubinterfaceOfTwo {
    public /*synthesized*/ fun Sub(/*0*/ function: () -> kotlin.String?): test.SamSubinterfaceOfTwo.Sub
    public /*synthesized*/ fun Super1(/*0*/ function: () -> kotlin.CharSequence?): test.SamSubinterfaceOfTwo.Super1
    public /*synthesized*/ fun </*0*/ T> Super2(/*0*/ function: () -> T?): test.SamSubinterfaceOfTwo.Super2<T>
}
