fun <T : Any> type(kClass: KClass<T>, block: TypeDSL<T>.() -> Unit): Unit
inline fun <reified T : Any> type(noinline block: TypeDSL<T>.() -> Unit): Unit
fun <reified T : Any> type(): Unit