OCaml firmas de tipo explícito

En Haskell, se considera una buena práctica declarar explícitamente la firma de tipo de sus funciones, aunque puede (por lo general) inferirse. Parece que esto ni siquiera es posible en OCaml, por ejemplo,

val add : int -> int -> int ;;

me da un error. (Aunque puedo hacertype módulos que solo dan firmas.)

¿Estoy correcto en que esto no es posible hacer en OCaml? Si es así, ¿por qué? El sistema de tipos de OCaml no parece tan increíblemente diferente de Haskell.

Respuestas a la pregunta(2)

Su respuesta a la pregunta