Тип print_endline - string -> unit
.Таким образом, вы не можете передать значение типа mytp.
Вы можете написать функцию для вывода значения типа mytp:
let print_mytp (Mytp s) = print_endline s
Вы можете написать функцию для преобразования mytp в строку:
let string_of_mytp (Mytp s) = s
Затем вы можете напечатать так:
print_endline (string_of_mytp x)
OCaml не позволит вам использовать mytp там, где ожидается строка, или наоборот.Это функция, а не ошибка.