// Rendering settings:
// - Signature version: 2
// - Show manifest properties: false
// - Show declarations: true

// Library unique name: <main>
abstract class <#A: /Derived1> /Base1 { // /Base1|null[0]
    constructor <init>() // /Base1.<init>|<init>(){}[0]
}
abstract class /Base2 { // /Base2|null[0]
    constructor <init>() // /Base2.<init>|<init>(){}[0]
    final fun <#A1: /Derived2> foo(#A1) // /Base2.foo|foo(0:0){0§<Derived2>}[0]
}
final class /Derived1 : /Base1</Derived1> { // /Derived1|null[0]
    constructor <init>() // /Derived1.<init>|<init>(){}[0]
}
final class /Derived2 : /Base2 { // /Derived2|null[0]
    constructor <init>() // /Derived2.<init>|<init>(){}[0]
}
