class GenericClass<T : Any?> {
  constructor(value: T) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  val value: T
    field = value
    get

  fun withNewValue(newValue: T): GenericClass<T> {
    return GenericClass<T>(value = newValue)
  }

}
