fun <T> Any.call(name: String, types: Array<Class<*>> = emptyArray(), args: Array<Any> = emptyArray()): T?
fun <T> Any.call(name: String, vararg args: Pair<Class<*>, Any>): T?