Why is passing a ref type into a F# function expecting a byref a type error?

Viewed 446
let a = ref 0
let f (x: byref<int>) = x

f a // type error

System.Int32.TryParse("123",a) // works

f a being a type error is puzzling to me since a can be passed into .NET library methods with a byref<int> type. Why?

Edit: I think I really explained the question poorly. The type of System.Int32.TryParse is string * byref<int> -> bool and yet it works. So why can't I pass a into a function of type x:byref<int> -> int? That is all I am asking.

2 Answers
Related