transient
transient copied to clipboard
Deprecate redundant state management primitives
There are two versions of state management primitives, ending with Data and ending with State, it creates unnecessary confusion. It is better to not have redundancy at all, therefore we can deprecate and later remove one set of these. I guess the ones with State suffix should be removed.
The problem I detected with the suffix *Data is that haskellers associate it with mutable state. It is not. It is pure state, like in the state monad. I introduced the suffix *State just for this reason.... maybe *Data is to be deprecated. I use *Data trough all the sources...
I suggested to keep "Data" because:
- It is the one being used widely
- We store and retrieve by data types, so "Data" is sort of a reminder for that.
I think the confusion may be largely because it was not properly explained in the documentation and people made their own guesses how it might behave. I have added concise and precise documentation in the module so that problem will not be there. Though I would be fine with any one of those, as long as we have only one.