
On 10/23/06, John Meacham
On Mon, Oct 23, 2006 at 11:27:58AM +0100, Conor McBride wrote:
John Meacham wrote:
Although, now that we lost the Monoid instance for functions (which is very dismaying), it is less useful, as the monoid functions were very useful to build things up efficiently with (String -> String) as a type.
...(with which I rather disagree) to finish a note about programming with structure-indicating newtypes, like Endo.
I thought I'd also remind you of a little of what we bought by wrapping the endofunction monoid, then making the function instance do pointwise lifting instead.
I don't have an issue with the reasoning behind it. But the transition caused a lot of real and very subtle bugs that could have been avoided.
the problem is that there are many places where the change caused silent changes to the behavior of existing code and these bugs were very hard to root out.
So, basically, you think we should have gone with the idea of putting both instances in newtypes for a while? (Not that I was around at the time or anything.)