Skip to content

Record patching (derived, not primitive)

A patch:

text
x <| { a.b.c : f }

Desugars to nested update + fold:

text
update x "a" (λa.
  update a "b" (λb.
    update b "c" f))

Predicates become filter over folds.

Removal is update to None + row shrink.