Luka Jacobowitz
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 :)