When op_Range and op_RangeStep have signatures (from re-definition) that don't
match the expected args or the expected return type (seq<'a>) (i.e. they are no
longer operators and are now just "symbolic functions"), they should not be
decompiled using the sequence construction syntax.
For example, the following is invalid:
> let (.. ..) x y z h = x + y + z + h;;
val ( .. .. ) : int -> int -> int -> int -> int
> unquote <@ ( .. .. ) 1 2 3 4 @>;;
{1..2..3}
10
val it : unit = ()
Though the following would be valid:
> let (.. ..) x y z = Seq.singleton (x + y + z);;
val ( .. .. ) : int -> int -> int -> seq<int>
> unquote <@ [1 .. 2 .. 3] @>;;
[1..2..3]
[6]
val it : unit = ()