12/10/13 10:30:56.43 .net
ああ書いていて気づいた。 record は mutable なフィールドを許すから、
# type t = { x: int; mutable y: t };;
type t = { x : int; mutable y : t; }
# let rec v = { x = 0; y = v };;
こういう循環している値を使うことが普通にあるわけで、 cyclic な型を認めておいた方が便利なのだ。
一方で tuple は常に immutable だから、無限ループになるような通常は起こりにくい状況でしか
cyclic な型が出てこない。
たぶん。