type Alignment =
| Horizontal
| Vertical
let getMainAttr = function
| Horizontal -> fst
| Vertical -> snd
let check alignment =
let mainAttr = getMainAttr alignment
mainAttr (2,3) |> ignore
mainAttr (2.0, 3.0) // error
val getMainAttr : _arg1:Alignment -> ('a * 'a -> 'a)
mainAttr : (int * int -> int) // because of the value restriction
ジェネリックにする唯一の方法は、明示的にすることです。let mainAttr x = getMainAttr alignment x
ただし、クロージャーを使用しなくなったため、mainAttr
呼び出されるたびalignment
にチェックする必要があります。
alignment
ジェネリックであるだけでなく、一度だけチェックする方法はありますか?