cypher121
10/07/2016, 1:38 PMfoo(bar)
where bar is of type X is valid and are allowed to try and pass different values to it instead.
Java developer checks if X is a primitive and checks for widening conversions and boxing, and narrows it to either a supertype of X or a primitive type.
Kotlin developer checks for null and either gets a supertype of X or a nullable supertype of X.
Scala developer makes a long "uhhhhh" sound and asks if he can take a peek at imports to at least give him some chance to narrow it beyond "pretty much anything".