Hi Edward

Many thanks.

I've mostly used groupoid for 'string concatenation' on types that I
don't consider to have useful empty (e.g PostScript paths, bars of
music...), as string concatenation is associative it would have been
better if I'd used semigroup in the first place (bounding box union
certainly looks associative to me as well).

Are magma and semigroup exclusive, i.e. in the presence of both a
Magma class and a Semigroup class would it be correct  that Magma
represents only 'magma-op' where op isn't associative and Semigroup
represents 'semigroup-op' where the op is associative?

When I decided to use a Groupoid class, I was being a bit lazy-minded
and felt it could represent a general binary op that _doesn't have to
be_ associative but potentially could be.


Thanks again

Stephen


2009/11/13 Edward Kmett <ekm...@gmail.com>:
>
>
>
>
> Watch out, in more common parlance, having just an binary operation is a
> magma, while having a category with full inverses yields a groupoid. I
> haven't seen many people use the older groupoid term for magmas, if only
> because they started to have naming conflicts with the category theory
> people, and Bourbaki's 'magma' was available and unambiguous. =)
>
> And of course magma is not to be confused with the notion of a semigroup,
> which is a binary associative operation, and is therefore much more similar
> to a monoid in that all it lacks is a unit.
>
> -Edward Kmett
>
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to