The Rational
class supports implicit conversions from int, float, etc. and this is seamless in C#. F#, on the other hand, does not do implicit conversions without you asking for them... well... explicity.
You can invoke the op_Implicit
operator directly to get what you want:
let rat (i:int) = Rational.op_Implicit(i)
Domain.IntegerRange(rat 6, rat 8)
It's also possible to define an operator to do this in general, see the standard approach in Tomas's answer to this question.