Исправление monk, (текущая версия) :
type connect_status = Success | BadHostname of string | CannotConnect of string;;
Можно и просто
type connect_status = Success of socket | BadHostname | CannotConnect
А потом другая функция должна вернуть
(defun calc (x)
(cond
((> x MAX) :overflow)
((= x 0) :zero)
(else (real-calc x))))
Пишем для неё тип:
type calc_status = Success of number | Overflow | Zero
Упс. Success использовать нельзя. Он уже есть в другом типе. Потом в третьей функции надо различать Success | Zero | Underflow... Приходится делать уродливые Success2, Zero2, ... это я и называю «камасутрой»
Исходная версия monk, :
type connect_status = Success | BadHostname of string | CannotConnect of string;;
Можно и просто
type connect_status = Success of socket | BadHostname | CannotConnect
А потом другая функция должна вернуть
(defun calc (x)
(cond
((> x MAX) :overflow)
((= x 0) :zero)
(else (real-calc x))))
Пишем для неё тип:
type calc_status = Success of number | Overflow | Zero