The generativity of record types is, I believe, one of the key prereqs for achieving a decidable type inference algorithm in the absence of any type annotations, in caml.  That is, when you write a caml program and it fails to type-check, you can't make it type-check by adding "enough" type-annotations.  For a programmer, this is critical -- when the compiler tells you that your program doesn't type-check, it means that your code is actually broken.  Whereas in SML/NJ, you might need to add some more type-annotations.

It was one of the things that convinced me to switch to caml, lo these many decades.

On Tue, Jan 23, 2018 at 8:05 AM, Jeremy Yallop <yallop@gmail.com> wrote:

Yes: record definitions are indeed generative in OCaml, unlike in Standard ML.