Hi all,
why Record is a class (an abstract class) and not an interface ?

It's a fair question.  At this point, it could go either way, and both have pros and cons.

Being an interface also means that we will be able to mix an inline type and a record, an inline record?, for free, and more generally

We are not ignoring this issue!  But I am not sure that "for free" is quite right.  It's a high priority to work out the abstract class / interface story for inline classes, and while j.l.Record is a tiny piece of that, there's way more to it.  So my preference is to figure out where we want to be on that story, and then adjust Record if need be.

Record being an interface is less disruptive than being a class when you want to retrofit a class to be a record.

I don't see this; if the class already has a superclass, you need to fix that before it becomes a record anyway.

Another issue to be worked out is what are the degrees of freedom should we want to support abstract records in the future.  Also on the list.

Reply via email to