That's why I mentioned multiple addresses. The public addresses (assigned using SLAAC or DHCPv6) are for global reachability, while you use the local prefix for stable addresses within your network.
If you want stable global addresses, you should request an AS number and prefix, and choose a provider that allows you to announce it with BGP.
With IPv6, it's common to have multiple addresses on an interface.
So on options is to assign yourself an [RFC 4193](https://datatracker.ietf.org/doc/html/rfc4193) fc00::/7 random prefix that you use for local routing that is stable, while the ISP prefix can be used for global routing.
Then you don't need to renumber your local network regardless of what your ISP does.
> The built-in new function, which creates a new variable, now allows its operand to be an expression, specifying the initial value of the variable.
So no need for separate helpers anymore to instantiate a pointer to a literal.