
#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