package

private val FOO: FOO.`<no name provided>`

@org.jspecify.nullness.NullMarked public open class BaseClass {
    public constructor BaseClass()
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open fun everythingNotNullable(/*0*/ x: Foo!): Foo!
    @org.jspecify.nullness.Nullable public open fun everythingNullable(/*0*/ @org.jspecify.nullness.Nullable x: @org.jspecify.nullness.Nullable Foo!): @org.jspecify.nullness.Nullable Foo!
    @org.jspecify.nullness.NullnessUnspecified public open fun everythingUnknown(/*0*/ @org.jspecify.nullness.NullnessUnspecified x: @org.jspecify.nullness.NullnessUnspecified Foo!): @org.jspecify.nullness.NullnessUnspecified Foo!
    public open fun explicitlyNullnessUnspecified(/*0*/ @org.jspecify.nullness.NullnessUnspecified x: @org.jspecify.nullness.NullnessUnspecified Foo!): Foo!
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    @org.jspecify.nullness.Nullable public open fun mixed(/*0*/ x: Foo!): @org.jspecify.nullness.Nullable Foo!
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public final class Correct : BaseClass {
    public constructor Correct()
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ fun everythingNotNullable(/*0*/ x: Foo): Foo
    public open override /*1*/ fun everythingNullable(/*0*/ x: Foo?): Foo?
    public open override /*1*/ fun everythingUnknown(/*0*/ x: Foo?): Foo?
    public open override /*1*/ fun explicitlyNullnessUnspecified(/*0*/ x: Foo): Foo
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ fun mixed(/*0*/ x: Foo): Foo?
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public interface Foo {
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public final class WrongParameter : BaseClass {
    public constructor WrongParameter()
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ fun everythingNotNullable(/*0*/ x: Foo?): Foo
    public open override /*1*/ fun everythingNullable(/*0*/ x: Foo): Foo?
    public open override /*1*/ fun everythingUnknown(/*0*/ x: Foo): Foo?
    public open override /*1*/ fun explicitlyNullnessUnspecified(/*0*/ x: Foo?): Foo
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ fun mixed(/*0*/ x: Foo?): Foo?
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public final class WrongReturnTypes : BaseClass {
    public constructor WrongReturnTypes()
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ fun everythingNotNullable(/*0*/ x: Foo): Foo?
    @org.jspecify.nullness.Nullable public open override /*1*/ /*fake_override*/ fun everythingNullable(/*0*/ @org.jspecify.nullness.Nullable x: @org.jspecify.nullness.Nullable Foo!): @org.jspecify.nullness.Nullable Foo!
    @org.jspecify.nullness.NullnessUnspecified public open override /*1*/ /*fake_override*/ fun everythingUnknown(/*0*/ @org.jspecify.nullness.NullnessUnspecified x: @org.jspecify.nullness.NullnessUnspecified Foo!): @org.jspecify.nullness.NullnessUnspecified Foo!
    public open override /*1*/ fun explicitlyNullnessUnspecified(/*0*/ x: Foo): Foo?
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    @org.jspecify.nullness.Nullable public open override /*1*/ /*fake_override*/ fun mixed(/*0*/ x: Foo!): @org.jspecify.nullness.Nullable Foo!
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
