The problem is that deepcopying a NavigableString results in well deep copying the entire tags tree in a such a not-so-efficient manner (via the default python deepcopy method) that it results in exceeding max recursion depth.
Apparently it should be safe to make NavigableString immutable since no one would anticipate a full tree copy from deepcopying an object that the user might not even know is not a string.
The problem is that deepcopying a NavigableString results in well deep copying the entire tags tree in a such a not-so-efficient manner (via the default python deepcopy method) that it results in exceeding max recursion depth.
Apparently it should be safe to make NavigableString immutable since no one would anticipate a full tree copy from deepcopying an object that the user might not even know is not a string.