// -- Module: <m1> --
package

package api {

    public interface ApplicabilityResult {
        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 interface ArgumentMapping {
        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 abstract fun highlightingApplicabilities(): api.ApplicabilityResult
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }
}

// -- Module: <m2> --
package

package impl {

    private final data class ApplicabilityResult {
        public constructor ApplicabilityResult(/*0*/ applicable: kotlin.Boolean)
        public final val applicable: kotlin.Boolean
        public final operator /*synthesized*/ fun component1(): kotlin.Boolean
        public final /*synthesized*/ fun copy(/*0*/ applicable: kotlin.Boolean = ...): impl.ApplicabilityResult
        public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
        public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
    }

    public final class NullArgumentMapping : api.ArgumentMapping {
        public constructor NullArgumentMapping()
        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*/ fun highlightingApplicabilities(): api.ApplicabilityResult
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }
}

