typealias CT<T : Any?> = Cell<T>
typealias CStr = Cell<String>
open class Cell<T : Any?> {
  constructor(value: T) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  val value: T
    field = value
    get

}

class C1 : Cell<String> {
  constructor() /* primary */ {
    super/*Cell*/<String>(value = "O")
    /* <init>() */

  }

}

class C2 : Cell<String> {
  constructor() /* primary */ {
    super/*Cell*/<String>(value = "K")
    /* <init>() */

  }

}
