Jean-Baptiste G.
Jean-Baptiste G.
@TomasMikula I used `lazyMap` in `Functor` mostly to trigger the tests. Eventually I was thinking of a `Lazy` tag to kick-in lazy implementation of type classes.
:+1: for LGPLv3
> My guess in that it is the same for the contributions from @jbgi, is that right? yes!
I think it should work without problems. But however I'd suggest a small variation: ```scala package scalaz sealed trait EqClass[T] { def equals(t1: T, t2: T): Boolean } trait EqAnyRef[T
> Since we'd want it to be a sealed trait, things such as Ord need to self-type on EqClass rather than extend, is that OK? We guess we could use...
But we can always implement `LeftReducer` / `RightReducer` / `Reducer` as soon as we have the semigroup + unit. Do we want to only provide `LeftReducer` for linked list types?...
maybe we could have `FastLeftReducer`/`FastRightReducer` extends `Reducer` and `FastReducer` extends both `FastLeftReducer`/`FastRightReducer`?
Or maybe simply a `Slow` tag and implicit conversions from LeftReducer/RightReducer to a tagged Reducer. Wdyt?
Not sure the distinction matter: if a method need a Reducer constraint, (as opposed to just LeftReducer or RightReducer) it means that if one of cons/snoc is slow, overall execution...
Just to be sure we are talking about the same thing, I was thinking of ```scala implicit def slowReducer[C, M](implicit lr: LeftReducer[C, M]) : Reducer[C, M @@ Slow] ``` The...