I'm new with functional programming but experienced enough with code to sense a false good idea/antipattern, and that may be the case: I'm not exactly sure what "immutability" means. Does the state of an object has to be frozen ? Or should the object ONLY behave as such ? In my case, I can make my object immutable OR implement some lazy resolving/cache. From an external point of view nothing should behave differently in any way. Yet the state of my object WILL change.
I can post code if you want me to but the questions seems not language specific enough to do, but I'm coding in Python.