fun box(): String { val n: Any? = null val intV: Any? = 23 val floatV: Any? = 23.4F val doubleV: Any? = 23.45 val longV: Any? = 234L val stringV: Any? = "foo" val booleanV: Any? = true val functionV: Any? = { x: Int -> x + 1 } if (n !is Int?) return "fail: null !is Int?" if (n !is Float?) return "fail: null !is Float?" if (n !is Double?) return "fail: null !is Double?" if (n !is String?) return "fail: null !is String?" if (n !is Boolean?) return "fail: null !is Boolean?" if (n !is Function1<*, *>?) return "fail: null !is Function?" if (n is Int) return "fail: null is Int" if (n is Float) return "fail: null is Float" if (n is Double) return "fail: null is Double" if (n is String) return "fail: null is String" if (n is Boolean) return "fail: null is Boolean" if (n is Function1<*, *>) return "fail: null is Function" if (intV !is Int?) return "fail: 23 !is Int?" if (intV is String?) return "fail: 23 is String?" if (floatV !is Float?) return "fail: 23.4F !is Float?" if (floatV is String?) return "fail: 23.4F is String?" if (doubleV !is Double?) return "fail: 23.45 !is Double?" if (doubleV is String?) return "fail: 23.45 is String?" if (longV !is Long?) return "fail: 234L !is Long?" if (longV is String?) return "fail: 234L is String?" if (stringV !is String?) return "fail: 'foo' !is String?" if (stringV is Double?) return "fail: 'foo' is Double?" if (booleanV !is Boolean?) return "fail: true !is Boolean?" if (booleanV is Double?) return "fail: true is Double?" if (functionV !is Function1<*, *>?) return "fail: !is Function?" if (functionV is String?) return "fail: is String?" return "OK" }