interface A { override fun toString() = "Hello" override fun equals(other: Any?) = true override fun hashCode(): Int { return 42; } } interface B { override fun toString(): String override fun equals(other: Any?): Boolean override fun hashCode(): Int } interface C { override operator fun toString(): String = "Rest" override operator fun equals(other: Any?): Boolean = false override operator fun hashCode(): Int = 2 } interface D { override operator fun toString(): String override operator fun equals(other: Any?): Boolean override operator fun hashCode(): Int }