Using Python - Frozen dataclass:

from dataclasses import dataclass
 
# Substitute this line of code 
add_new_field = object.__setattr__
""" with
from myPackage.Immutable.frozen_dataclass import add_new_field
# myPackage.Immutable.frozen_dataclass.add_new_field
"""
 
@dataclass(frozen=True)
class Immutable:
	a: int
	b: int
	
	def __post_init__(self):
		print(type(self.a))
		if self.a is int: raise Exception
		if self.b is int: raise Exception
 
		sum = self.a + self.b
		sub = self.a - self.b
 
		add_new_field(self, "sum", sum)
		add_new_field(self, "sub", sub)
	
	def print_values(slef): print(f"a = {a}, b = {b}")
		
 
imm = Immutable(1,2)
print(imm.a)
print(imm.sum)
print(imm.sub)
imm.print_values()