Consider the following code:
let pair = System.Tuple.Create (10, "foo") // val pair : int * string = (10, "foo")
let tuple = System.Tuple.Create <| (10, "foo") // val tuple : System.Tuple<int * string> = ((10, "foo"))
- Why doesn't the two lines yield values of the same type? Does the type of the argument
(10, "foo")
somehow change between the two lines? - What's the exact difference between
int * string
andSystem.Tuple<int * string>
?
For 2, at least the latter has null
as a value (this is how this question came up). Are there other differences?