These are chat archives for non/algebra

21st
Apr 2016
Denis Rosset
@denisrosset
Apr 21 2016 03:17
Can we get #131 fixed, so that non/spire can be based on non/algebra ? That is a first step towards cats and spire compatibility.
Adelbert Chang
@adelbertc
Apr 21 2016 04:08
is this the corresponding PR for it? non/algebra#140
Denis Rosset
@denisrosset
Apr 21 2016 04:08
Yes!
Kai(luo) Wang
@kailuowang
Apr 21 2016 07:35
@denisrosset @adelbertc that would be a major breaking change for cats, can we delay it after the cats 0.5.0 release?
Denis Rosset
@denisrosset
Apr 21 2016 09:53
@kailuowang OK with the delay.
Provided an appropriate decision on potential algebra/algebird/cats/spire unification is taken in the next release.
Denis Rosset
@denisrosset
Apr 21 2016 10:05
Pinging @non on that. I'm not set on an opinion, now I'm even that thinking that we should let cats evolve separately from spire/algebird.
P. Oscar Boykin
@johnynek
Apr 21 2016 14:48
TLDR: either add an enrichment implicit to put empty on Monoids (call neutral) or just live with empty.
the cost of such things is an externality pushed on all consumers (and we want there to be many, so we should assume that cost in aggregate is high)
Denis Rosset
@denisrosset
Apr 21 2016 14:59
Voting actually to use empty, combine, ... in algebra.
Thus, algebra's Monoid would be consistent with Haskell; let's have enrichment methods for the standard group terminology (op, id, inverse).
Kai(luo) Wang
@kailuowang
Apr 21 2016 15:02
Voting actually to use empty, combine, ... in algebra.
:+1:
Denis Rosset
@denisrosset
Apr 21 2016 15:03
BTW, what is the rationale for some structures that are used neither in Spire nor Cats: Band, Semilattice, BoundedSemilattice ?
In algebra, we have a quite complete hierarchy for lattices in a different subproject;. And Band sticks like a sore thumb: I don't see why it should be included, while magmas, loops, racks and quandles, ... are omitted.
(to be clear, I'm not proposing to add those in algebra, but to remove Band, Semilattice, BoundedSemilattice)
Alec Zorab
@AlecZorab
Apr 21 2016 15:26
spire's MeetSemilattice and JoinSemilattice probably ought to be Semilattices
likewise for their Bounded variants
Erik Osheim
@non
Apr 21 2016 15:32
@denisrosset i think having a generic semilattice is something that the algebird folks needed (whereas in spire we just use either meet or join semilattice for that)
P. Oscar Boykin
@johnynek
Apr 21 2016 15:32
why does Band stick out?
@denisrosset ?
Magma is free in a typed language
def combine(a: T, b: T): T is a magma by nature of the type signature
Erik Osheim
@non
Apr 21 2016 15:34
type Magma[A] = (A, A) => A
šŸ™ƒ
P. Oscar Boykin
@johnynek
Apr 21 2016 15:34
so, there is no extra promise needed (like this is an element of a typeclass).
exactly
but idempotency is an important property in many algorithms (specifically distributed computing stuff)
Denis Rosset
@denisrosset
Apr 21 2016 15:36
MeetSemilattice and JoinSemilattice probably ought to be Semilattices
Then you run into a problem when having a Lattice that inherit both
P. Oscar Boykin
@johnynek
Apr 21 2016 15:37
logical clocks, generalized count-min-sketch, a few other cases want idempotency
Denis Rosset
@denisrosset
Apr 21 2016 15:37
Ok, I see the rationale for those! thanks @johnynek
Erik Osheim
@non
Apr 21 2016 15:38
@denisrosset i think the problem parallels the one we have with semigroup, versus additive/multiplicative semigroups
P. Oscar Boykin
@johnynek
Apr 21 2016 15:39
yeah. We have this core, that is approximately one tower built on semigroup
then in lattice, we have Meet/Join semilattices
Erik Osheim
@non
Apr 21 2016 15:39
so i think having generic/meet/join variants (and conversions between them) is a good design.
Denis Rosset
@denisrosset
Apr 21 2016 15:43
I'm closing my PR to rename the group operations by the way.
Or is it already ?
P. Oscar Boykin
@johnynek
Apr 21 2016 15:44
I think @non closed it
Denis Rosset
@denisrosset
Apr 21 2016 15:45
Great
Kai(luo) Wang
@kailuowang
Apr 21 2016 19:41
so @/all fine with cutting a release now?
P. Oscar Boykin
@johnynek
Apr 21 2016 19:56
do we still not have list instances?
that looks like it would be good to merge is @non could make some quick tests (I think we have laws for that stuff)
P. Oscar Boykin
@johnynek
Apr 21 2016 21:20
ok, Iā€™m good with a new release unless @adelbertc wants to bump the scalacheck
Adelbert Chang
@adelbertc
Apr 21 2016 21:21
nah, it can wait for the final release of ScalaTest