Will changing associativity of enumerator's ($=) affect anyone? (also: enumerator mailing list)

A user recently suggested changing the associativity of ($=) from [[ infixr 0 ]] to [[ infixl 1 ]]. This allows the following expressions to be equivalent: run $ enumerator $$ enumeratee =$ enumeratee =$ iteratee run $ enumerator $= enumeratee $$ enumeratee =$ iteratee run $ enumerator $= enumeratee $= enumeratee $$ iteratee Although this is technically a backward-incompatible change, I feel it's small enough that it could go in a minor release *if nobody depends on the current behavior*. So, if anybody using 'enumerator' will have code broken by this change, please speak up. If I don't hear anything in a week or so, I'll assume it's all clear and will cut the new release. ------------------------- Second, I was asked whether there's a mailing list for enumerator stuff. To my knowledge there isn't, so I started one on librelist. To subscribe and/or post, send an email to haskell.enumerator@librelist.com . Archives are available at http://librelist.com/browser/haskell.enumerator/ . I plan to make release announcements there (for releases not important enough for haskell-cafe), and it might be useful for general discussion.

On Sat, Oct 15, 2011 at 4:59 PM, John Millikin
A user recently suggested changing the associativity of ($=) from [[ infixr 0 ]] to [[ infixl 1 ]]. This allows the following expressions to be equivalent:
run $ enumerator $$ enumeratee =$ enumeratee =$ iteratee run $ enumerator $= enumeratee $$ enumeratee =$ iteratee run $ enumerator $= enumeratee $= enumeratee $$ iteratee
Although this is technically a backward-incompatible change, I feel it's small enough that it could go in a minor release *if nobody depends on the current behavior*.
So, if anybody using 'enumerator' will have code broken by this change, please speak up. If I don't hear anything in a week or so, I'll assume it's all clear and will cut the new release.
-------------------------
Second, I was asked whether there's a mailing list for enumerator stuff. To my knowledge there isn't, so I started one on librelist. To subscribe and/or post, send an email to haskell.enumerator@librelist.com . Archives are available at http://librelist.com/browser/haskell.enumerator/ . I plan to make release announcements there (for releases not important enough for haskell-cafe), and it might be useful for general discussion.
I'm strongly in favor of this change, the current associativity has caused me to litter some code with a few too many parentheses. Michael

This would be a big boon to newbies. When I first started using the
library I would get big errors using $= that were because I didn't
have parenthesis I needed, but didn't realize I needed, despite the
fact that the types seemed to line up.
On Sat, Oct 15, 2011 at 12:40 PM, Michael Snoyman
On Sat, Oct 15, 2011 at 4:59 PM, John Millikin
wrote: A user recently suggested changing the associativity of ($=) from [[ infixr 0 ]] to [[ infixl 1 ]]. This allows the following expressions to be equivalent:
run $ enumerator $$ enumeratee =$ enumeratee =$ iteratee run $ enumerator $= enumeratee $$ enumeratee =$ iteratee run $ enumerator $= enumeratee $= enumeratee $$ iteratee
Although this is technically a backward-incompatible change, I feel it's small enough that it could go in a minor release *if nobody depends on the current behavior*.
So, if anybody using 'enumerator' will have code broken by this change, please speak up. If I don't hear anything in a week or so, I'll assume it's all clear and will cut the new release.
-------------------------
Second, I was asked whether there's a mailing list for enumerator stuff. To my knowledge there isn't, so I started one on librelist. To subscribe and/or post, send an email to haskell.enumerator@librelist.com . Archives are available at http://librelist.com/browser/haskell.enumerator/ . I plan to make release announcements there (for releases not important enough for haskell-cafe), and it might be useful for general discussion.
I'm strongly in favor of this change, the current associativity has caused me to litter some code with a few too many parentheses.
Michael
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

As a recent newbie, I would like to confirm the parent's report. I eventually managed to think of the parentheses, but it did leave me stumped for a while on thursday. On Sa, 2011-10-15 at 12:49 -0400, David McBride wrote:
This would be a big boon to newbies. When I first started using the library I would get big errors using $= that were because I didn't have parenthesis I needed, but didn't realize I needed, despite the fact that the types seemed to line up.
On Sat, Oct 15, 2011 at 12:40 PM, Michael Snoyman
wrote: On Sat, Oct 15, 2011 at 4:59 PM, John Millikin
wrote: A user recently suggested changing the associativity of ($=) from [[ infixr 0 ]] to [[ infixl 1 ]]. This allows the following expressions to be equivalent:
run $ enumerator $$ enumeratee =$ enumeratee =$ iteratee run $ enumerator $= enumeratee $$ enumeratee =$ iteratee run $ enumerator $= enumeratee $= enumeratee $$ iteratee
Although this is technically a backward-incompatible change, I feel it's small enough that it could go in a minor release *if nobody depends on the current behavior*.
So, if anybody using 'enumerator' will have code broken by this change, please speak up. If I don't hear anything in a week or so, I'll assume it's all clear and will cut the new release.
-------------------------
Second, I was asked whether there's a mailing list for enumerator stuff. To my knowledge there isn't, so I started one on librelist. To subscribe and/or post, send an email to haskell.enumerator@librelist.com . Archives are available at http://librelist.com/browser/haskell.enumerator/ . I plan to make release announcements there (for releases not important enough for haskell-cafe), and it might be useful for general discussion.
I'm strongly in favor of this change, the current associativity has caused me to litter some code with a few too many parentheses.
Michael
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

enumerator 0.4.15, which includes this change, is now published. Hackage: http://hackage.haskell.org/package/enumerator-0.4.15 Home page: https://john-millikin.com/software/enumerator/ Important changes since 0.4.14: * Fix an error in UTF-16 decoding, which could cause truncated output if the first four bytes are a surrogate pair. * Change associativity of ($=) from infixr 0 to infixl 1. * When decoding invalid text, throw an error rather than silently truncate the output. Full change log at https://john-millikin.com/software/enumerator/#changelog
participants (6)
-
Benjamin Herr
-
David McBride
-
Gregory Collins
-
John Millikin
-
Julian Blake Kongslie
-
Michael Snoyman