Интересно, почему в Ocaml «let .. and ...» не имеет такой же видимости, как «type ... and ...»:
Следующее в порядке, t2 в том же объеме, что и t1
# type t1 = t2
and t2 = int;;
Этот следующий НЕПРАВИЛЬНО, v2 в НЕ в области видимости
# let v1 = v2
and v2 = 3;;
Characters 9-11:
let v1 = v2
^^
Error: Unbound value v2
Даже "let rec" не работает ...
# let rec v1 = v2
and v2 = 3;;
Characters 13-15:
let rec v1 = v2
^^
Error: This kind of expression is not allowed as right-hand side of `let rec'
Почему это несоответствие области видимости между "типом ... и" и "пусть ... и"? Спасибо.