Flow can enforce immutability by making every property read-only (see the plus sign before each prop) https://flow.org/en/docs/react/redux/#typing-redux-state-immutability-a-classtoc-idtoc-typing-redux-state-immutability-hreftoc-typing-redux-state-immutabilitya
The Object.freeze() method freezes an object: that is, prevents new properties from being added to it. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze