Results 78 comments of Luka Jacobowitz

I think this could easily be done using something like `foldMapK` and a `MonoidK` instance that races, something similar to what's discussed in #405

I would very much like to see that as well: https://github.com/typelevel/cats/issues/2041

> Regarding the default monoid/group: the meaning really depends. Say you have a Map[Monomial, Scalar] that represents a polynomial. You want the additive group there. However, if you use permutation...

> I couldn’t see almost any code that we wanted that is generic on the Field stuff and Field also has the ugly aspect that inverse/div is not total (it...

> But I'm very adamant against merging Group and AdditiveGroup. Sure, add an implicit conversion, but typeclasses are about laws and syntax, and I've always admired that cats/algebra/spire has distinct...

Another argument is that the `|+|` syntax on `cats.kernel.Semigroup` (as well as the `|-|` syntax on `cats.kernel.Group`) already sort of implies that `combine` usually refers to addition. We're probably going...

> I see the force is strong on this one. Before I present my case, let's acknowledge that there is no optimal solution there, just sets of different trade-offs. Fully...

For me personally, I'm going to list a few reasons why I think having ring structures in cats would be great: 1. We already have a ring-like typeclass in `cats.Alternative`...

Quick addendum to the Alternative Validation, I coded up a quick example of what we could do if Semiring were available in Cats-core :) ```scala case class MatChain[A](value: Chain[Chain[A]]) sealed...

It's just a newtype over `Validation`/`Either`, it's all in the fiddle I linked :)