[GHC] #10365: Implement Semigroup as a superclass of Monoid Proposal (Phase 1)

GHC ghc-devs at haskell.org
Sat Oct 10 20:47:40 UTC 2015


#10365: Implement Semigroup as a superclass of Monoid Proposal (Phase 1)
-------------------------------------+-------------------------------------
        Reporter:  gidyn             |                Owner:  quchen
            Type:  feature request   |               Status:  patch
        Priority:  high              |            Milestone:  8.0.1
       Component:  libraries/base    |              Version:  7.10.1
      Resolution:                    |             Keywords:  report-impact
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):  Phab:D1284
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by ekmett):

 RyanGIScott:

 The plan around any sort of eventual consolidation of `First` and `Last`
 is definitely punted several years down the road.

 Once `Maybe` has the `Semigroup`-based `Monoid` instance, `Maybe (First
 a)` using the semigroup `First` has more or less the semantics of the
 existing monoidal `First a`.

 However, at this current moment such things have to be implemented in
 terms of `Option`, which is considerably more painful!

 After enough time has passed I can envision a situation where we might
 eventually choose to deprecate the existing Monoid versions, but that is
 far enough out that any proposal about it at this stage would be so much
 hand-waving. If it takes us 3 years to get `Semigroup` in as a superclass
 of `Monoid`, it'd likely take us another 3 years to get to where the new
 `Semigroup` forms of those constructions have wide enough distribution to
 even start considering deprecation of the originals.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10365#comment:25>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list