/// To turn this into a rewritable model, it needs to be initialised using [`initialise`](SerdeModel::initialise).
// Swizzle declaration pointers in expressions (references, auxdecls) using their ids and `all_declarations`.
*self.submodel.constraints_mut() = self.submodel.constraints().transform_bi(&move |decl: DeclarationPtr| {
.unwrap_or_else(|| panic!("A declaration used in the expression tree should exist in the symbol table. The missing declaration has id {id}."))