The not update-able means x["foo"] = "bar" kind of update, as shown by this section of the doc: Object | ReScript Language Manual
I always viewed Object.set as kind of a backdoor, since needing to use a function call to update an object is a pretty clear sign to users that they’re off the paved path.
Maybe the wording of the docs could be updated to reduce confusion?