Module: lib
@kotlin.Metadata
public interface Foo {
    // source: 'Foo.kt'
    public method foo(p0: java.lang.Object): java.lang.Object
}

@kotlin.Metadata
public interface Foo2 {
    // source: 'Foo.kt'
    public method foo(p0: java.lang.Object): java.lang.Object
}
Module: main
@kotlin.Metadata
public final class DerivedClass {
    // source: 'main.kt'
    public method <init>(): void
}

@kotlin.Metadata
public final class DerivedClassWithSpecialization {
    // source: 'main.kt'
    public method <init>(): void
    public @org.jetbrains.annotations.NotNull method foo(@org.jetbrains.annotations.NotNull p0: java.lang.String): java.lang.String
    public synthetic bridge method foo(p0: java.lang.Object): java.lang.Object
}

@kotlin.Metadata
public final class DerivedInterface$DefaultImpls {
    // source: 'main.kt'
    public static method foo(@org.jetbrains.annotations.NotNull p0: DerivedInterface, p1: java.lang.Object): java.lang.Object
    public final inner class DerivedInterface$DefaultImpls
}

@kotlin.Metadata
public interface DerivedInterface {
    // source: 'main.kt'
    public abstract method foo(p0: java.lang.Object): java.lang.Object
    public final inner class DerivedInterface$DefaultImpls
}

@kotlin.Metadata
public final class MainKt {
    // source: 'main.kt'
    public final static @org.jetbrains.annotations.NotNull method box(): java.lang.String
}
