daml
daml copied to clipboard
Unserializable types have upgrade invariants enforced on them
Unserializable data types could in theory be able to change to whatever they like, since they will never to be committed to the ledger in a way that is interacted with other packages.
Currently, we enforce the normal upgrade rules even on unserializable types.
At the same time, it may be best to disallow changing unserializable data types - gives us a lot more freedom to define a good upgrade semantics for unserializable types in the future.
At the very least we should do a serializability check and disallow upgrade logic on unserializable types.