Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2012-01-26 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
---+
  Reporter:  bos   |  Owner:  igloo   
  Type:  feature request   | Status:  closed  
  Priority:  normal|  Milestone:  7.4.1   
 Component:  libraries/base|Version:  7.3 
Resolution:  fixed |   Keywords:  
Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown  | Difficulty:  Unknown 
  Testcase:|  Blockedby:  
  Blocking:|Related:  
---+
Changes (by igloo):

  * status:  new = closed
  * resolution:  = fixed
  * milestone:  Not GHC = 7.4.1


Comment:

 This was done in f4b71242b05285a5b901123ad463f3aa74a472c7.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:44
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2012-01-04 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
---+
  Reporter:  bos   |  Owner:  
  Type:  feature request   | Status:  patch   
  Priority:  normal|  Milestone:  Not GHC 
 Component:  libraries/base|Version:  7.3 
Resolution:|   Keywords:  
Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown  | Difficulty:  Unknown 
  Testcase:|  Blockedby:  
  Blocking:|Related:  
---+

Comment(by igloo):

 This turned out to have some bad interactions with `` in the pretty
 package; see this thread:
 http://www.haskell.org/pipermail/libraries/2011-November/017066.html

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:34
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2012-01-04 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
---+
  Reporter:  bos   |  Owner:  
  Type:  feature request   | Status:  closed  
  Priority:  normal|  Milestone:  Not GHC 
 Component:  libraries/base|Version:  7.3 
Resolution:  fixed |   Keywords:  
Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown  | Difficulty:  Unknown 
  Testcase:|  Blockedby:  
  Blocking:|Related:  
---+
Changes (by tibbe):

  * status:  patch = closed
  * resolution:  = fixed


Comment:

 Fixed in ghc-7.4 branch.

 ghc:
 {{{
 commit 7dfa17d4ed8fa7604cb681e375133db4773b8910
 Author: Johan Tibell johan.tib...@gmail.com
 Date:   Wed Jan 4 09:59:22 2012 -0800

 Be explicit about what we import from Data.Monoid

  compiler/ghci/RtClosureInspect.hs |2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)
 }}}

 base:
 {{{
 commit 556d174a555b993176e6766017b984e7a096a327
 Author: Johan Tibell johan.tib...@gmail.com
 Date:   Tue Aug 16 11:40:34 2011 +0200

 Add  as an alias for mappend

  Data/Monoid.hs |8 
  1 files changed, 8 insertions(+), 0 deletions(-)
 }}}

 pretty:
 {{{
 commit f615a6aeb4abcdbfbfab67b0a82cef9a9a65ec49
 Author: Johan Tibell johan.tib...@gmail.com
 Date:   Wed Jan 4 10:06:50 2012 -0800

 Add note explaining why we use a different 

  Text/PrettyPrint/HughesPJ.hs |4 
  1 files changed, 4 insertions(+), 0 deletions(-)
 }}}

 We will have to separately sort out the pretty package needs to change if
 it wants to use the `Data.Monoid.()` operator.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:35
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2012-01-04 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
---+
  Reporter:  bos   |  Owner:  
  Type:  feature request   | Status:  new 
  Priority:  normal|  Milestone:  Not GHC 
 Component:  libraries/base|Version:  7.3 
Resolution:|   Keywords:  
Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown  | Difficulty:  Unknown 
  Testcase:|  Blockedby:  
  Blocking:|Related:  
---+
Changes (by igloo):

  * status:  closed = new
  * resolution:  fixed =


-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:36
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2012-01-04 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
---+
  Reporter:  bos   |  Owner:  igloo   
  Type:  feature request   | Status:  new 
  Priority:  normal|  Milestone:  Not GHC 
 Component:  libraries/base|Version:  7.3 
Resolution:|   Keywords:  
Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown  | Difficulty:  Unknown 
  Testcase:|  Blockedby:  
  Blocking:|Related:  
---+
Changes (by igloo):

  * owner:  = igloo


Comment:

 Not in HEAD

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:37
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2012-01-04 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
---+
  Reporter:  bos   |  Owner:  igloo   
  Type:  feature request   | Status:  new 
  Priority:  normal|  Milestone:  Not GHC 
 Component:  libraries/base|Version:  7.3 
Resolution:|   Keywords:  
Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown  | Difficulty:  Unknown 
  Testcase:|  Blockedby:  
  Blocking:|Related:  
---+

Comment(by igloo):

 If it won't generalise `Text.Pretty.`, then I wonder why we don't name
 it `++` instead (and remove the current `++` definition).

 I guess the main argument against doing so would be error messages for
 beginners, but perhaps better error messages and/or helium are the answer
 to that.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:38
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2012-01-04 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
---+
  Reporter:  bos   |  Owner:  igloo   
  Type:  feature request   | Status:  new 
  Priority:  normal|  Milestone:  Not GHC 
 Component:  libraries/base|Version:  7.3 
Resolution:|   Keywords:  
Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown  | Difficulty:  Unknown 
  Testcase:|  Blockedby:  
  Blocking:|Related:  
---+

Comment(by tibbe):

 It does generalize `Text.Pretty.`, but the interaction between `` and
 `+` in pretty is iffy with regards to fixity and associativity (and was
 that way before this addition, this simply brought it to light) and needs
 to be resolved.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:39
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2012-01-04 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
---+
  Reporter:  bos   |  Owner:  igloo   
  Type:  feature request   | Status:  new 
  Priority:  normal|  Milestone:  Not GHC 
 Component:  libraries/base|Version:  7.3 
Resolution:|   Keywords:  
Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown  | Difficulty:  Unknown 
  Testcase:|  Blockedby:  
  Blocking:|Related:  
---+

Comment(by igloo):

 Oh, I missed this comment in your previous message:

  We will have to separately sort out the pretty package needs to change
 if it wants to use the `Data.Monoid.()` operator.

 Surely having a single GHC release in which `Data.Monoid` and
 `Text.PrettyPrint` have conflicting definitions of `` is the worst case?
 Anyone importing both will need to change their code to disambiguate in
 order to work around a transient problem.

 Why not just make both changes at once, with GHC 7.6.1? This could be done
 in the HEAD now, and should be released well under a year after 7.4.1.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:40
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2012-01-04 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
---+
  Reporter:  bos   |  Owner:  igloo   
  Type:  feature request   | Status:  new 
  Priority:  normal|  Milestone:  Not GHC 
 Component:  libraries/base|Version:  7.3 
Resolution:|   Keywords:  
Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown  | Difficulty:  Unknown 
  Testcase:|  Blockedby:  
  Blocking:|Related:  
---+

Comment(by bos):

 Replying to [comment:40 igloo]:

  Why not just make both changes at once, with GHC 7.6.1? This could be
 done in the HEAD now, and should be released well under a year after
 7.4.1.

 The proposal is already over 3 years old, and has been stalled by immense
 amounts of bikeshedding. It would be ludicrous to delay it by another year
 just to sort out the incompatibility between the two modules, when
 Text.PrettyPrint is not at all widely used and the fix in any location
 that is actually subject to the problem takes less than a minute.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:41
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2012-01-04 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
---+
  Reporter:  bos   |  Owner:  igloo   
  Type:  feature request   | Status:  new 
  Priority:  normal|  Milestone:  Not GHC 
 Component:  libraries/base|Version:  7.3 
Resolution:|   Keywords:  
Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown  | Difficulty:  Unknown 
  Testcase:|  Blockedby:  
  Blocking:|Related:  
---+

Comment(by YitzGale):

 There is widespread support for this. I think it should be
 implemented immediately. (Even though I myself voted against
 it, because in my bikeshed `` is exported from `Data.Semigroup`
 and not from `Data.Monoid`.)

 `Text.PrettyPrint` is a far lower priority. After this much
 delay, we should implement the change even if it ultimately
 reduces the quality of the solution we provide for
 `Text.PrettyPrint`.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:42
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2012-01-04 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
---+
  Reporter:  bos   |  Owner:  igloo   
  Type:  feature request   | Status:  new 
  Priority:  normal|  Milestone:  Not GHC 
 Component:  libraries/base|Version:  7.3 
Resolution:|   Keywords:  
Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown  | Difficulty:  Unknown 
  Testcase:|  Blockedby:  
  Blocking:|Related:  
---+

Comment(by JulesBean):

 Go ahead. Text.Pretty is not particularly widely used and users of
 Text.Pretty will not find this hard to resolve in their own code should
 they choose to do so.

 As a historical note:

 Replying to [comment:38 igloo]:
  If it won't generalise `Text.Pretty.`, then I wonder why we don't name
 it `++` instead (and remove the current `++` definition).

 `` was chosen because of the match to `Data.Sequence.` not
 `Text.Pretty.` according to my scanning of the bug / email thread / my
 memory (on a recommendation from Ross Patterson).

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:43
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2011-11-05 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
--+-
  Reporter:  bos  |  Owner:  
  Type:  feature request  | Status:  patch   
  Priority:  normal   |  Milestone:  Not GHC 
 Component:  libraries/base   |Version:  7.3 
Resolution:   |   Keywords:  
  Testcase:   |  Blockedby:  
Difficulty:  Unknown  | Os:  Unknown/Multiple
  Blocking:   |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown |  
--+-
Changes (by duncan):

  * version:  7.2.1 = 7.3


Comment:

 I think we're ok as per the new library process:

  * We have had the discussion on the libraires list (the discussion took
 place before the new libs process was in place, but what happened does
 follow what the new library process calls for).
  * We've created a ticket on the trac (re-opened this ticket) with the
 patch and the link to the discussion

 So now we just need the maintainer to apply it. That's GHC HQ, meaning
 Simon, Simon or Ian. If you're busy and want to delegate, I'm happy to
 take the blame myself! :-)

 We've all been procrastinating on this for years. Can we please get this
 into base for the 7.4 release please? :-)

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:32
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2011-11-05 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
--+-
  Reporter:  bos  |  Owner:  
  Type:  feature request  | Status:  patch   
  Priority:  normal   |  Milestone:  Not GHC 
 Component:  libraries/base   |Version:  7.3 
Resolution:   |   Keywords:  
  Testcase:   |  Blockedby:  
Difficulty:  Unknown  | Os:  Unknown/Multiple
  Blocking:   |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown |  
--+-

Comment(by duncan):

 Replying to [comment:28 YitzGale]:

  This is an old proposal. I was in favor of it back in the day,
  but now I am opposed, due to the existence of the semigroups package:

 For the record, I disagree. Having a semigroup class is fine, but as long
 as it is outside of base then we still need  in base otherwise in
 practice all the other packages are just not going to provide semigroup
 instances. Later on, if we move semigroup into base, or move monoid out of
 base into a different core package then that'll all be nice, we can move
  into semigroup etc. But lets not hold back everything just because it's
 not perfect. Whatever solution we use to fix Applicative between Functor
 and Monad, we'll be able to use the same solution to fix Semigroup.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:33
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2011-08-25 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
--+-
  Reporter:  bos  |  Owner:  
  Type:  feature request  | Status:  patch   
  Priority:  normal   |  Milestone:  Not GHC 
 Component:  libraries/base   |Version:  7.2.1   
Resolution:   |   Keywords:  
  Testcase:   |  Blockedby:  
Difficulty:  Unknown  | Os:  Unknown/Multiple
  Blocking:   |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown |  
--+-
Changes (by tibbe):

  * version:  6.10.3 = 7.2.1


-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:31
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2011-08-16 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
-+--
  Reporter:  bos |  Owner:  
  Type:  proposal| Status:  new 
  Priority:  normal  |  Milestone:  Not GHC 
 Component:  libraries/base  |Version:  6.10.3  
Resolution:  |   Keywords:  
  Testcase:  |  Blockedby:  
Difficulty:  Unknown | Os:  Unknown/Multiple
  Blocking:  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown|  
-+--
Changes (by tibbe):

  * status:  closed = new
  * resolution:  invalid =


Comment:

 As per http://thread.gmane.org/gmane.comp.lang.haskell.libraries/11450 we
 now have consensus. Please apply the attached patch.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:29
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2011-08-16 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
--+-
  Reporter:  bos  |  Owner:  
  Type:  feature request  | Status:  patch   
  Priority:  normal   |  Milestone:  Not GHC 
 Component:  libraries/base   |Version:  6.10.3  
Resolution:   |   Keywords:  
  Testcase:   |  Blockedby:  
Difficulty:  Unknown  | Os:  Unknown/Multiple
  Blocking:   |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown |  
--+-
Changes (by tibbe):

  * status:  new = patch
  * type:  proposal = feature request


-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:30
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2011-08-14 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
-+--
  Reporter:  bos |  Owner:  
  Type:  proposal| Status:  closed  
  Priority:  normal  |  Milestone:  Not GHC 
 Component:  libraries/base  |Version:  6.10.3  
Resolution:  invalid |   Keywords:  
  Testcase:  |  Blockedby:  
Difficulty:  Unknown | Os:  Unknown/Multiple
  Blocking:  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown|  
-+--
Changes (by YitzGale):

 * cc: gale@… (added)


Comment:

 Since there is already so much discussion about the issue in this
 ticket, I am adding this comment here:

 This is an old proposal. I was in favor of it back in the day,
 but now I am opposed, due to the existence of the semigroups package:

 http://hackage.haskell.org/package/semigroups

 This operator is already exported from Data.Semigroup.
 Library authors who have Monoid instances should also
 provide Semigroup instances. That makes the ``
 operator available.

 Exporting `` from Data.Monoid would break any code
 that uses the synonymous operator from Data.Semigroup.
 And anyway, it's incorrect - this is really a semigroup
 operator, Monoid only adds the identity element.

 Really Monoid should be a subclass of Semigroup, but that
 would be difficult to do at this stage. It is similar to
 the situation with Functor and Monad, unfortunately.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:28
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2011-02-05 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
-+--
  Reporter:  bos |  Owner:  
  Type:  proposal| Status:  closed  
  Priority:  normal  |  Milestone:  Not GHC 
 Component:  libraries/base  |Version:  6.10.3  
Resolution:  invalid |   Keywords:  
  Testcase:  |  Blockedby:  
Difficulty:  Unknown | Os:  Unknown/Multiple
  Blocking:  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown|  
-+--
Changes (by igloo):

  * status:  new = closed
  * resolution:  = invalid


Comment:

 Proposal tickets are no longer needed as part of the library submissions
 process. Instead, a normal ticket should be created once consensus has
 been achieved. Please see the
 [http://www.haskell.org/haskellwiki/Library_submissions process
 description] for details.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:27
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler

___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2010-10-16 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
-+--
  Reporter:  bos |  Owner:  
  Type:  proposal| Status:  new 
  Priority:  normal  |  Milestone:  Not GHC 
 Component:  libraries/base  |Version:  6.10.3  
Resolution:  |   Keywords:  
  Testcase:  |  Blockedby:  
Difficulty:  Unknown | Os:  Unknown/Multiple
  Blocking:  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown|  
-+--

Comment(by jeltsch):

 Replying to [comment:25 nominolo]:
  Getting rid of `mappend` would break a ''lot'' of packages, so that will
 take a while.

 Of course. But that’s why I think we should start to prepare for
 {{{mappend}}} removal now. ;-)

  Also, what should happen to `mconcat`?  The naming of `mappend` makes
 somewhat sense, because `[a]` is the free Monoid, so `mconcat` is just the
 extension of that naming strategy.  Should `mconcat` stay as is, or can
 anyone think of a better name?

 I don‘t like the {{{m}}} in {{{mappend}}} and {{{mconcat}}} because it’s
 not very descriptive. Sometimes it means “monoid” as in {{{mappend}}} and
 {{{mconcat}}}, and sometimes it means “monad” as in {{{mzero}}},
 {{{mplus}}}, and {{{msum}}}. So it might be a good idea to change
 {{{mconcat}}} to {{{concat}}}, at least in the long run. The current
 {{{concat}}} is just {{{mconcat}}} of the {{{[a]}}} instance of
 {{{Monoid}}}, so it could just be removed then.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:26
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler
___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2010-10-15 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
-+--
  Reporter:  bos |  Owner:  
  Type:  proposal| Status:  new 
  Priority:  normal  |  Milestone:  Not GHC 
 Component:  libraries/base  |Version:  6.10.3  
Resolution:  |   Keywords:  
  Testcase:  |  Blockedby:  
Difficulty:  Unknown | Os:  Unknown/Multiple
  Blocking:  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown|  
-+--

Comment(by nominolo):

 Benchmarks checking whether changing associativity of () in `pretty`
 would lead to performance issues:

 {{{
 import Text.PrettyPrint

 import Data.List
 import Criterion.Main


 f_left :: Int - Doc
 f_left n = foldl' () empty (map (text . show) [10001..1+n])

 f_right :: Int - Doc
 f_right n = foldr () empty (map (text . show) [10001..1+n])

 main =
   defaultMain $
 [ bench left $ nf (length . render . f_left)  1
 , bench right$ nf (length . render . f_right) 1
 , bench left20k  $ nf (length . render . f_left)  2
 , bench right20k $ nf (length . render . f_right) 2
 , bench left30k  $ nf (length . render . f_left)  3
 , bench right30k $ nf (length . render . f_right) 3
 ]
 }}}

 Results (lower numbers are better):

 {{{
Iterations
   _10K__20K__30K
 Left   10.1 (0.5)   24.4 (0.6)   40.0 (1.3)
 Right   8.9 (0.2)   22.7 (3.1)   31.2 (4.6)

 Format:  runtime (stddev) all in milliseconds
 }}}

 So switching to right-associativity may actually increase performance
 slightly.  Scaling doesn't seem to be quite linear, but that could be due
 to cache effects or suchlike; and it's also outside the scope of this
 proposal.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:22
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler
___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2010-10-15 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
-+--
  Reporter:  bos |  Owner:  
  Type:  proposal| Status:  new 
  Priority:  normal  |  Milestone:  Not GHC 
 Component:  libraries/base  |Version:  6.10.3  
Resolution:  |   Keywords:  
  Testcase:  |  Blockedby:  
Difficulty:  Unknown | Os:  Unknown/Multiple
  Blocking:  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown|  
-+--

Comment(by jeltsch):

 It was also suggested to make {{{()}}} a method of {{{Monoid}}} and
 insert the following default definitions:

 {{{
 () = mappend
 mappend = ()
 }}}

 Any objections against this?

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:23
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler
___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2010-10-15 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
-+--
  Reporter:  bos |  Owner:  
  Type:  proposal| Status:  new 
  Priority:  normal  |  Milestone:  Not GHC 
 Component:  libraries/base  |Version:  6.10.3  
Resolution:  |   Keywords:  
  Testcase:  |  Blockedby:  
Difficulty:  Unknown | Os:  Unknown/Multiple
  Blocking:  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown|  
-+--

Comment(by jeltsch):

 In the long run, we should probably get rid of {{{mappend}}} altogether.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:24
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler
___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2010-10-15 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
-+--
  Reporter:  bos |  Owner:  
  Type:  proposal| Status:  new 
  Priority:  normal  |  Milestone:  Not GHC 
 Component:  libraries/base  |Version:  6.10.3  
Resolution:  |   Keywords:  
  Testcase:  |  Blockedby:  
Difficulty:  Unknown | Os:  Unknown/Multiple
  Blocking:  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown|  
-+--

Comment(by nominolo):

 Getting rid of `mappend` would break a ''lot'' of packages, so that will
 take a while.  Also, what should happen to `mconcat`?  The naming of
 `mappend` makes somewhat sense, because `[a]` is the free Monoid, so
 `mconcat` is just the extension of that naming strategy.  Should `mconcat`
 stay as is, or can anyone think of a better name?

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:25
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler
___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2010-10-14 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
-+--
  Reporter:  bos |  Owner:  
  Type:  proposal| Status:  new 
  Priority:  normal  |  Milestone:  Not GHC 
 Component:  libraries/base  |Version:  6.10.3  
Resolution:  |   Keywords:  
  Testcase:  |  Blockedby:  
Difficulty:  Unknown | Os:  Unknown/Multiple
  Blocking:  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown|  
-+--

Comment(by nominolo):

 The discussion for this proposal can be found at:
 http://thread.gmane.org/gmane.comp.lang.haskell.libraries/11450

 We were approaching consensus for the addition of of:

 {{{
 infixr 6 

 () :: Monoid m = m - m - m
 () = mappend
 }}}

 and a matching change for `(+)` in the `pretty` package.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:21
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler
___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2010-09-03 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
-+--
  Reporter:  bos |  Owner:  
  Type:  proposal| Status:  new 
  Priority:  normal  |  Milestone:  Not GHC 
 Component:  libraries/base  |Version:  6.10.3  
Resolution:  |   Keywords:  
  Testcase:  |  Blockedby:  
Difficulty:  Unknown | Os:  Unknown/Multiple
  Blocking:  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown|  
-+--
Changes (by jeltsch):

  * status:  closed = new
  * resolution:  wontfix =


Comment:

 I don’t think that this proposal was abandoned. I suppose that just nobody
 made the next steps to make the proposed change become reality. Would
 anyone object if I’d declare “use {{{}}} with fixity {{{infixr 6 }}}”
 as the consensus and go on with producing a patch for the libraries, etc.?

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:17
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler
___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2010-09-03 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
-+--
  Reporter:  bos |  Owner:  
  Type:  proposal| Status:  new 
  Priority:  normal  |  Milestone:  Not GHC 
 Component:  libraries/base  |Version:  6.10.3  
Resolution:  |   Keywords:  
  Testcase:  |  Blockedby:  
Difficulty:  Unknown | Os:  Unknown/Multiple
  Blocking:  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown|  
-+--

Comment(by dons):

 I thought the use of  had been agreed upon. Duncan just gave a talk
 claiming this would be in the next base library release.

 +1 for . Let's kill confusing hints of sequences in monoid.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:18
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler
___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2010-09-03 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
-+--
  Reporter:  bos |  Owner:  
  Type:  proposal| Status:  new 
  Priority:  normal  |  Milestone:  Not GHC 
 Component:  libraries/base  |Version:  6.10.3  
Resolution:  |   Keywords:  
  Testcase:  |  Blockedby:  
Difficulty:  Unknown | Os:  Unknown/Multiple
  Blocking:  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown|  
-+--

Comment(by tibbe):

 +1

 Having a right associative operator for monoid makes it less error prone
 to use builder monoid like `Data.Binary.Builder` and
 `Data.Text.Lazy.Builder` as they should be used in a right associative
 way.

 I think what needs to happen is that someone creates a patch and moves the
 ticket to the please merge stage, assuming that consensus was reached (I
 didn't check the discussion thread).

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:19
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler
___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2010-09-03 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
-+--
  Reporter:  bos |  Owner:  
  Type:  proposal| Status:  new 
  Priority:  normal  |  Milestone:  Not GHC 
 Component:  libraries/base  |Version:  6.10.3  
Resolution:  |   Keywords:  
  Testcase:  |  Blockedby:  
Difficulty:  Unknown | Os:  Unknown/Multiple
  Blocking:  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown|  
-+--

Comment(by igloo):

 It should be patch rather than please merge (which is for merging from
 HEAD to STABLE branch). I've just updated
 http://www.haskell.org/haskellwiki/Library_submissions to say that.

 Also, please link to the start of the thread on the mailing list.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:20
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler
___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2010-06-20 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
-+--
  Reporter:  bos |  Owner:  
  Type:  proposal| Status:  closed  
  Priority:  normal  |  Milestone:  Not GHC 
 Component:  libraries/base  |Version:  6.10.3  
Resolution:  wontfix |   Keywords:  
Difficulty:  Unknown | Os:  Unknown/Multiple
  Testcase:  |   Architecture:  Unknown/Multiple
   Failure:  None/Unknown|  
-+--
Changes (by igloo):

  * status:  new = closed
  * resolution:  = wontfix


Comment:

 Looks like an abandoned proposal. If that's not the case, please re-open
 and give a discussion summary and consensus decision, as described on the
 [http://www.haskell.org/haskellwiki/Library_submissions process page].

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:16
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler
___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add () as a synonym for mappend

2009-09-18 Thread GHC
#3339: Data.Monoid: Add () as a synonym for mappend
-+--
Reporter:  bos   |Owner:  
Type:  proposal  |   Status:  new 
Priority:  normal|Milestone:  Not GHC 
   Component:  libraries/base|  Version:  6.10.3  
Severity:  normal|   Resolution:  
Keywords:|   Difficulty:  Unknown 
Testcase:|   Os:  Unknown/Multiple
Architecture:  Unknown/Multiple  |  
-+--
Changes (by bos):

  * summary:  Data.Monoid: Add (+) as a synonym for mappend =
  Data.Monoid: Add () as a synonym for mappend

Comment:

 The revised proposal is now as follows:

 Use {{{}}}, with fixity of {{{infixr 6 }}}.

 The change would also involve updating the pretty-print library to use the
 monoidal version of this operator.

 Let's wrap this up in two weeks, this time for sure :-)

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:14
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add (+) as a synonym for mappend

2009-07-13 Thread GHC
#3339: Data.Monoid: Add (+) as a synonym for mappend
--+-
 Reporter:  bos   |  Owner:  
 Type:  bug   | Status:  new 
 Priority:  normal|  Milestone:  
Component:  libraries/base|Version:  6.10.3  
 Severity:  normal| Resolution:  
 Keywords:|   Testcase:  
   Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
--+-
Comment (by jeltsch):

 What are the exact backward-compatibility problems? I can only think of
 cases like
 {{{
 cat = (++)
 }}}
 which only matter because the monomorphism restriction is still in use.

 The “confusing newbiews with weird error messages” problem is already
 present in several places. For example, the expression {{{1 + 'A'}}} will
 make GHC complain that there is no instance for {{{(Num Char)}}}. I think,
 it would be better to try to generate better error messages instead of
 increasing the number of operators.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:12
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add (+) as a synonym for mappend

2009-07-13 Thread GHC
#3339: Data.Monoid: Add (+) as a synonym for mappend
-+--
Reporter:  bos   |Owner:  
Type:  proposal  |   Status:  new 
Priority:  normal|Milestone:  Not GHC 
   Component:  libraries/base|  Version:  6.10.3  
Severity:  normal|   Resolution:  
Keywords:|   Difficulty:  Unknown 
Testcase:|   Os:  Unknown/Multiple
Architecture:  Unknown/Multiple  |  
-+--
Changes (by igloo):

  * difficulty:  = Unknown
  * type:  bug = proposal
  * milestone:  = Not GHC

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:13
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add (+) as a synonym for mappend

2009-07-10 Thread GHC
#3339: Data.Monoid: Add (+) as a synonym for mappend
--+-
 Reporter:  bos   |  Owner:  
 Type:  bug   | Status:  new 
 Priority:  normal|  Milestone:  
Component:  libraries/base|Version:  6.10.3  
 Severity:  normal| Resolution:  
 Keywords:|   Testcase:  
   Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
--+-
Comment (by jeltsch):

 I agree. Since {{{(++)}}} is {{{mappend}}} for a specific type, it makes
 much sense to just generalize {{{(++)}}} to work with arbitrary
 {{{Monoid}}} instances. There is also a poll about this topic which has a
 strong bias to making {{{(++)}}} the new {{{mappend}}}:
 http://doodle.com/4yrfd7qaw5man3rm.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:10
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add (+) as a synonym for mappend

2009-07-10 Thread GHC
#3339: Data.Monoid: Add (+) as a synonym for mappend
--+-
 Reporter:  bos   |  Owner:  
 Type:  bug   | Status:  new 
 Priority:  normal|  Milestone:  
Component:  libraries/base|Version:  6.10.3  
 Severity:  normal| Resolution:  
 Keywords:|   Testcase:  
   Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
--+-
Comment (by JulesBean):

 Technical decisions are not best made by democracy. A poll is not
 interesting.

 What is interesting is arguments of substance.  (++) is a sensible choice
 but has backward-compatibility problems, and confusing newbies with weird
 error messages problems. It is only for those reasons that I didn't
 choose it.

 If we're choosing something new, then + has the advantage of being
 visually flippable, but  has the advantage of being already used in (at
 least) two other monoids.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:11
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add (+) as a synonym for mappend

2009-07-01 Thread GHC
#3339: Data.Monoid: Add (+) as a synonym for mappend
--+-
 Reporter:  bos   |  Owner:  
 Type:  bug   | Status:  new 
 Priority:  normal|  Milestone:  
Component:  libraries/base|Version:  6.10.3  
 Severity:  normal| Resolution:  
 Keywords:|   Testcase:  
   Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
--+-
Comment (by jochemb):

 Generalizing (++) may be confusing for newbies, but I think this is the
 best way to go.

 (+) and (+) are totally asymmetric, like (=) and (*), whereas the
 type of (+) is
 Monoid a = a - a - a

 (++) is (pretty obviously) not commutative, like () and (), where
 there can be no confusion.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:3
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add (+) as a synonym for mappend

2009-07-01 Thread GHC
#3339: Data.Monoid: Add (+) as a synonym for mappend
--+-
 Reporter:  bos   |  Owner:  
 Type:  bug   | Status:  new 
 Priority:  normal|  Milestone:  
Component:  libraries/base|Version:  6.10.3  
 Severity:  normal| Resolution:  
 Keywords:|   Testcase:  
   Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
--+-
Comment (by david48):

 In my opinion as a newbie, there are far more confusing things for newbies
 than (++) being the mappend of monoids. And anyways, monoids is far from
 being the hardest thing to understand in haskell, once you read a few well
 written blog posts.

 You can still learn to use ++ as the concatenation operator for strings,
 and discover later that there is more to it than it looks.

 I support generalizing the type of (++)

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:4
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add (+) as a synonym for mappend

2009-07-01 Thread GHC
#3339: Data.Monoid: Add (+) as a synonym for mappend
--+-
 Reporter:  bos   |  Owner:  
 Type:  bug   | Status:  new 
 Priority:  normal|  Milestone:  
Component:  libraries/base|Version:  6.10.3  
 Severity:  normal| Resolution:  
 Keywords:|   Testcase:  
   Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
--+-
Comment (by JulesBean):

 There is no universal convention that symmetric-looking operators should
 be commutative.

 However, it is certainly a handy visual guide.

 To address specific points:

 () looks commutative to me, and it *is* commutative, in the _|_ free
 fragment of haskell. That's the fragment I most commonly reason about. You
 don't get many algebraic laws without that. Similarly (||).

 () looks uncommutative - it's not about repeated symbols, it's about the
 way the  symbols obviously 'point' in one direction. And, () *is*
 noncommutative, of course.

 Concrete advantages for (+):

  * It has a symbol which visually indicates direction, and mappend is
 often a directional operation in some sense;
  * It can be 'naturally' flipped to yield +; it's useful to have a short
 name for flip mappend.

 The latter is the key point. The reason to use + is so we can use +.

 I rejected using (++) not just because it looks too symmetric (that's not
 a big problem, it doesn't confuse people too much) but simply because the
 backwards-compatibility damage of changing the type of a very very widely
 used operator is very significant.

 By contrast, (+) is not used in any widely used libraries, certainly not
 in base, and the backwards-compatibility damage of adding a new symbol to
 Data.Monoid is relatively low. No worse than adding any other new function
 to an API.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:5
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add (+) as a synonym for mappend

2009-07-01 Thread GHC
#3339: Data.Monoid: Add (+) as a synonym for mappend
--+-
 Reporter:  bos   |  Owner:  
 Type:  bug   | Status:  new 
 Priority:  normal|  Milestone:  
Component:  libraries/base|Version:  6.10.3  
 Severity:  normal| Resolution:  
 Keywords:|   Testcase:  
   Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
--+-
Comment (by duncan):

 Is there any evidence for why a flipped mappend is useful?

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:6
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add (+) as a synonym for mappend

2009-07-01 Thread GHC
#3339: Data.Monoid: Add (+) as a synonym for mappend
--+-
 Reporter:  bos   |  Owner:  
 Type:  bug   | Status:  new 
 Priority:  normal|  Milestone:  
Component:  libraries/base|Version:  6.10.3  
 Severity:  normal| Resolution:  
 Keywords:|   Testcase:  
   Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
--+-
Comment (by JulesBean):

 I think it's useful for Endo a, where you sometimes want to postcompose
 and sometimes precompose functions.

 I think it's useful for any monoid which represents something like the
 composition of a graphical image, where precomposition is putting
 something 'underneath' and postcomposition is putting something 'on top'.

 I suspect you quite often get Monoids along those general lines in DSLs;
 I've certainly seen a view.

 Of course the case for a special flipped operator can never be that
 strong; you can always just write an expression the other way around.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:7
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add (+) as a synonym for mappend

2009-07-01 Thread GHC
#3339: Data.Monoid: Add (+) as a synonym for mappend
--+-
 Reporter:  bos   |  Owner:  
 Type:  bug   | Status:  new 
 Priority:  normal|  Milestone:  
Component:  libraries/base|Version:  6.10.3  
 Severity:  normal| Resolution:  
 Keywords:|   Testcase:  
   Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
--+-
Comment (by bkomuves):

 +1 vote for generalizing (++). I think flipped mappend is so rare that
 writing flip (++) is actually easier to read. And you can still define
 your own + and + if you use them a lot.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:8
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add (+) as a synonym for mappend

2009-07-01 Thread GHC
#3339: Data.Monoid: Add (+) as a synonym for mappend
--+-
 Reporter:  bos   |  Owner:  
 Type:  bug   | Status:  new 
 Priority:  normal|  Milestone:  
Component:  libraries/base|Version:  6.10.3  
 Severity:  normal| Resolution:  
 Keywords:|   Testcase:  
   Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
--+-
Comment (by tibbe):

 I agree with generalizing (++). Are there any programs that will break
 because of that generalization? My argument for reusing (++) is that I'd
 like to keep the number of different operators I have to memorize (in
 particular when reading other people's code) to a minimum. I only think
 very fundamental type classes deserve operators (e.g. Monad, Functor,
 Monoid, Num).

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:9
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add (+) as a synonym for mappend

2009-06-30 Thread GHC
#3339: Data.Monoid: Add (+) as a synonym for mappend
--+-
 Reporter:  bos   |  Owner:  
 Type:  bug   | Status:  new 
 Priority:  normal|  Milestone:  
Component:  libraries/base|Version:  6.10.3  
 Severity:  normal| Resolution:  
 Keywords:|   Testcase:  
   Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
--+-
Comment (by duncan):

 I dislike the asymmetry. The ++ operator is not commutative but we don't
 artificially make it visually asymmetric. Why not take Ross's proposal and
 use  as in Data.Sequence.

 For the sake of the discussion, perhaps someone should also explain why we
 cannot just generalise the type of ++. There's a separate argument that we
 should not.

 Also, what is the purpose of the flipped append? Why do we want to
 dedicate a symbol for flipped append? I use monoid operations a lot and I
 cannot think of a single use of flipped append.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:1
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs


Re: [GHC] #3339: Data.Monoid: Add (+) as a synonym for mappend

2009-06-30 Thread GHC
#3339: Data.Monoid: Add (+) as a synonym for mappend
--+-
 Reporter:  bos   |  Owner:  
 Type:  bug   | Status:  new 
 Priority:  normal|  Milestone:  
Component:  libraries/base|Version:  6.10.3  
 Severity:  normal| Resolution:  
 Keywords:|   Testcase:  
   Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
--+-
Comment (by ajd):

 What is wrong with generalizing the type of (++)? If it would not break
 too much code (on first glance, I'm not sure how it would), I think that
 that would be the best solution.

-- 
Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/3339#comment:2
GHC http://www.haskell.org/ghc/
The Glasgow Haskell Compiler___
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs