If I have parts of code that need to mutate the underlying data structure but then others that consume, not mutate the structure, is it good practice to create a wrapper which does not expose mutation operations?Let's say I have a tree and I only want higher up parts of code to be able to iterate it.
Is it bad or good to wrap mutable objects in immutable containers?
c#;design;immutability