@ramin_hal9001 Well, as things stand, you can already have immutable records – just don’t have any mutable fields. (This is actually the default in R6 define-record-type.)
But there’s no automatic way to create functional field setting procedures like there is to create field mutator procedures. You can have them, but you have to define them yourself.
I wrote a syntax-rules macro to define a record type with updaters instead of mutators: https://gitlab.com/dpk/presrfis/-/blob/master/define-value-type.scm