@RequiresOptIn @Target(AnnotationTarget.TYPEALIAS, AnnotationTarget.FUNCTION) annotation class Marker class Wrapper @Marker typealias TA = Wrapper open class Base { @Marker open fun foo(): T? = null open fun bar(): TA? = null } class Derived : Base() fun test(d: Derived) { d.foo() d.bar() }