[Haskell-cafe] RFC: functor-classes-compat
Oleg Grenrus
oleg.grenrus at iki.fi
Tue Dec 13 18:26:51 UTC 2016
On 13.12.2016 19:06, David Feuer wrote:
> On Dec 13, 2016 4:01 AM, "Oleg Grenrus" <oleg.grenrus at iki.fi
> <mailto:oleg.grenrus at iki.fi>> wrote:
>
> Hi,
>
> continuing pushing the adoption Data.Functor.Classes, I wrote a small
> package `functor-classes-compat` [1].
>
> It provides lifted (Eq1, Ord1, etc.) classes for types in
> `containers`,
> `vector` and `unordered-containers`(not for Sequence or Tree yet
> though).
>
>
> Thanks for working on this. Obviously, some of these really belong in
> containers. I'll try to add them today.
Thanks to you!
>
> I guess there is no way they could depend on `transformers` to provide
> instances in build plans with `base < 4.9`, I'm not sure when I'll
> have
> time to write patches for the actual packages myself.
>
>
> No, I don't think that's likely. One option might be to add these
> instances to transformers when compiling with older base, but I don't
> know if Ross Paterson will want them.
I'm not sure we want `transformers` to depend on `containers` either,
not even mentioning `vector` and `unordered-containers`. Also there are
people stuck with `transformers-0.4` (GHC 7.10).
>
>
> Current implementations are naive, but more obviously correct.
>
>
> More than what?
It seems that implementation for Data.Map is indeed "check size, compare
lists", but e.g for vector it uses streaming framework to make things
fuse, I still use "check size, compare lists" approach.
Also I see that my `HashMap` implementation is actually incorrect, as
HashMap's `toList` may return results in different order (depends on the
history)
More information about the Haskell-Cafe
mailing list