Jeremy,

Do you propose:

Monoid a => Monoid (Maybe a)

be changed to:

Semigroup a => Monoid (Maybe a)

as the documentation indicates?

+1, but I think there are some technicalities that I think would benefit from a more concrete proposal including as a patch or hackage analysis.

On Sun, Mar 29, 2015 at 8:16 PM, M Farkas-Dyck <strake888@gmail.com> wrote:
On 29/03/2015 at 05:20:33 -0700, Jeremy wrote:
> 1. GHC 7.12 will include Semigroup and NonEmpty in base.

+1 for Semigroup at least.

NonEmpty is simply the cofree comonad of Maybe, so I think we ought to define it either as such or to be compatibly redefinitile as such, e.g.

now:
data NonEmpty a = a .: Maybe (NonEmpty a)

so potentially later:
data Cofree f a = a .: f (Cofree f a)
type NonEmpty = Cofree Maybe

as otherwise we shall have various code using nonsame isomorphic types which one must convert or coerce between for no good reason.

+1 for NonEmpty if so defined, -1 otherwise.

> 2. GHC >7.12 will define Monoid as a subclass of Semigroup.

+1

On 29/03/2015 at 11:23:19 -0400, David Feuer wrote:
> I guess I should get a dog in the fight—I think <> should be the Semigroup method.

+1
_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries



--
Love in Jesus Christ, John Alfred Nathanael Chee
http://www.biblegateway.com/
http://web.cecs.pdx.edu/~chee/