They had three usability problems:
-
The fields had to be in the exact same order every time you constructed an instance of the record. This is because the compiler needed a canonical ordering.
-
They could not be recursive without the compiler doing fancy typechecking (coinductive IIRC), which was felt to be not worth the effort.
-
Field-level privacy can’t work with them.