<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jun 2, 2021 at 11:07 PM Henning Thielemann <<a href="mailto:lemming@henning-thielemann.de">lemming@henning-thielemann.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
On Thu, 3 Jun 2021, Fumiaki Kinoshita wrote:<br>
<br>
> +1 to the original proposal of using QuantifiedConstraints.<br>
> <br>
> There is no need to stick to the standard from 23 years ago, and having <br>
> two different classes is only likely to bring confusion and extra work <br>
> for library maintainers.<br>
<br>
But why do we have the separation between 'transformers' and 'mtl' then?<br></blockquote><div><br></div><div>We have it though a combination of intent and historical accident.</div><div><br></div><div>Originally there was just `mtl`-1. Then `transformers` + (`monads-fd` | `monads-tf`) came along with a couple of also-ran packages like Galois' `monadLib`. The ecosystem splintered badly and nobody could work with anybody in a different splinter. To merge the `mtl` portion of the ecosystem with the monads-fd ecosystem, we renamed the latter to `mtl`-2, and the `monads-tf` corner of the ecosystem silently died because nobody was using it and it conflicted in the module names with things that people did use.<br></div><div><br></div><div>`transformers` was then sort of retroactively justified for two reasons, one to provide a "simple" core, then-Haskell98ish package like you suggest. </div><div><br><div>`transformers` has supported things like PolyKinds for a long time, leans on StandaloneDeriving, etc. so it isn't exactly the first chink in that first justification's armor.</div><div></div><br></div><div>Another justification was to supply a common base for experimentation on things like `monads-fd` and `monads-tf` and all the gajillion effect-system-alikes that have been built on top that do things like replace the `MonadFoo` classes with ones that use type families or tags or remove the functional dependencies.</div><div><br></div><div>The latter mission remains intact.</div><div><br></div><div>-Edward</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
_______________________________________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org" target="_blank">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries</a><br>
</blockquote></div></div>