В Haskell считается хорошей практикой явно объявлять сигнатуру типа ваших функций, даже если она может (обычно) быть выведена. Кажется, что это невозможно даже в OCaml, например.
val add : int -> int -> int ;;
дает мне ошибку. (Хотя я могу сделать модули type
, которые дают только подписи.)
- Правильно ли, что это невозможно сделать в OCaml?
- Если да, то почему? Система типов OCaml не кажется невероятно отличной от Haskell.