data class FunctionWrapper( val function: (T) -> Any? ) fun main() { val stringFun = FunctionWrapper { s -> s.trim() } val intFun = FunctionWrapper { s -> s * 2 } val funs = listOf(stringFun, intFun) val value: Any = "testValue" for (f in funs) { when (f) { is Function<*> -> f.function.invoke(value) // only allows Nothihng } } }