This is due to overload. See, bigintit is actually a synonym for a class BigInteger, and applying it as a function translates into a constructor call, but which of several constructors depends on the type of argument.
This works great when you apply it as a function: the type of the argument is known, and the compiler can choose the appropriate overload. But if you try to consider it as a value function, the argument is absent, and the compiler does not know which overload to take.
Here's a simpler reprogramming:
type T() =
member static f (s: string) = s
member static f (i: int) = I
let a = T.f 1
let b = T.f "abc"
let c = T.f
let fStr (s: string) = T.f s
let fInt (i: int) = T.f i
let a = fStr
let b = fInt
: , . , . .
( )
: ", , ". , , :
let a = (bigint) 5
let f = bigint
let a = f 5
: , ; , .