// MODULE: <lib>
// FILE: lib.kt

expect enum class MyEnum : Enum<MyEnum> {
  private expect constructor() /* primary */
  FOO = MyEnum()

  BAR = MyEnum()

  expect fun values(): Array<MyEnum>

  expect fun valueOf(value: String): MyEnum

  expect val entries: EnumEntries<MyEnum>
    get(): EnumEntries<MyEnum> /* Synthetic body for ENUM_ENTRIES */

}

// MODULE: main
// FILE: main.kt

enum class MyEnum : Enum<MyEnum> {
  private constructor() /* primary */ {
    super/*Enum*/<MyEnum>()
    /* <init>() */

  }

  FOO = MyEnum()

  BAR = MyEnum()

  BAZ = MyEnum()

  fun values(): Array<MyEnum> /* Synthetic body for ENUM_VALUES */

  fun valueOf(value: String): MyEnum /* Synthetic body for ENUM_VALUEOF */

  val entries: EnumEntries<MyEnum>
    get(): EnumEntries<MyEnum> /* Synthetic body for ENUM_ENTRIES */

}

