private interface I {
  abstract fun fooString(): String

  fun barString(): String {
    return "bar@I"
  }

  fun bazString(): String {
    return "baz@I"
  }

  abstract fun fooUnit()

  fun barUnit() {
  }

  fun bazUnit() {
  }

}

open class C1 : I {
  constructor() /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  override fun fooString(): String {
    return "foo@C1"
  }

  override fun barString(): String {
    return "bar@C1"
  }

  override fun fooUnit() {
  }

  override fun barUnit() {
  }

}

class C2 : C1 {
  constructor() /* primary */ {
    super/*C1*/()
    /* <init>() */

  }

}

