F# では、".NET" および "OCaml" 形式の署名を使用できます。これは、1 つのスタイルを使用する習慣に陥り、必要な署名を適切にフォーマットできない状況に陥ると、混乱を招く可能性があります。foo への関数入力の出力として柔軟な型を必要とする次のコードを検討してください。
let foo n (bar: int -> #seq<'a>) =
(fun () -> Vector.ofSeq (bar n))
let foobar n = Array.ofSeq([1..n])
let x = foo 10 foobar
#seq<'a> を OCaml 形式で表現する方法がわかりませんでした。出来ますか?