I like the immutability concept but sometimes I wonder, when an application isn't meant to be parallel, should one avoid making things immutable?
When an application isn't multi-threaded, you aren't plagued by shared state problems, right?
Or is immutability a concept like OOP that you either use all the way or not? Excluding the cases when something shouldn't be immutable based on use/performance, etc.
I am faced with this question when writing an application for myself, that is moderately big (maybe like 1-2k lines).