fun testSimple(): Box<Long> {
  return Box<Long>(value = 2L.times(other = 3))
}

inline fun <reified T : Any?> testArray(n: Int, crossinline block: Function0<T>): Array<T> {
  return Array<T>(size = n, init = local fun <anonymous>(it: Int): T {
    return block.invoke()
  }
)
}

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

  }

  val value: T
    field = value
    get

}
