interface CPointed {

}

inline fun <reified T : CPointed> CPointed.reinterpret(): T {
  return TODO()
}

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

  }

}

typealias CInt32Var = CInt32VarX<Int>
var <T_INT : Int> CInt32VarX<T_INT>.value: T_INT
  get(): T_INT {
    return TODO()
  }
  set(value: T_INT) {
  }

class IdType : CPointed {
  constructor(value: Int) /* primary */ {
    super/*Any*/()
    /* <init>() */

  }

  val value: Int
    field = value
    get

}

fun foo(value: IdType, cv: CInt32VarX<Int>) {
  cv.<set-value><Int>(value = value.<get-value>())
}
