These are chat archives for non/algebra

20th
Aug 2015
P. Oscar Boykin
@johnynek
Aug 20 2015 00:15
@non yeah: macros for tuples would (without some fancy tricks) generate a lot of functionally equivalent classes.
@milessabin we're often having to do horrible mutable tricks internal to immutable APIs to get an extra 5% (which multiplied out over our clusters becomes quite significant). For many uses cases, the generality will be nicer. Since semigroups are kind of foundational analytics objects at Twitter, we try to squeeze every bit we can (for instance adding the def sumOption(its: TraverseableOnce[T]): Option[T] method that makes it easy for us to use an intermediate mutable structure on a large batch of T.
to be clear: the generality and power of shapeless vs the one-off nature of current macros is nicer for a lot of cases.
Miles Sabin
@milessabin
Aug 20 2015 08:52
Yeah, I think that's entirely reasonable.
@non repeated derivation is something that's being worked on: @alexarchambault has been doing some awesome work in this department.
Pascal Voitot
@mandubian
Aug 20 2015 08:54
@milessabin I can't follow recent evolutions on shapeless/cats/algebra, what is the status of derivation lately?
Miles Sabin
@milessabin
Aug 20 2015 08:56
@alexarchambault Has done a lot of work on improving compile time of derivations and also global caching of derived instances. It's just landed on master, so as yet not really tested in anger.
@mandubian see: milessabin/shapeless#435
Alexandre Archambault
@alexarchambault
Aug 20 2015 09:44
@milessabin @mandubian I hope to be able to write something about the big pictures of the changes of milessabin/shapeless#435, and various optimizations (lower compile times) I stumbled upon, soon. The derivations here illustrate them a bit.
Pascal Voitot
@mandubian
Aug 20 2015 11:43
this seems really good! impressive job :)
I need to digest the subtle differences between lazy/global/strict now ;)