OCaml 中作为类型的函数签名

Function signature as type in OCaml

有没有办法声明类似

的东西
type do = ('a -> 'b)

在 OCaml 中?具体来说,将函数签名声明为类型

对于自由类型'a和'b'a -> 'b不是任何行为良好的OCaml函数的类型,因为它要求函数产生任意类型的值.

因此,您不能为具有未绑定参数的类型命名:

# type uabfun = 'a -> 'b
Error: Unbound type parameter 'a

如果你使用特定的类型,给它起一个名字是没有问题的:

# type iifun = int -> int;;
type iifun = int -> int

如果type类型'a'b是参数(而不是free),也没有问题:

# type ('a, 'b) abfun = 'a -> 'b;;
type ('a, 'b) abfun = 'a -> 'b