Nested record update syntax

record { a->b->c = val } x

Returns a new record, with the field accessed by c (b (a x)) updated
to have the new value 'val'