<div dir="auto">containers-verified should only export the verified part, for sure. I think it should mostly re-export, but if it needs to use a different version of a function (perhaps temporarily) then it can do so. For example, if containers makes a function faster at the expense of some complication, then containers-verified may want to stick with the old version until the new one can be verified (or someone can come up with a simpler fast one).</div><div class="gmail_extra"><br><div class="gmail_quote">On Feb 1, 2018 9:15 AM, "Joachim Breitner" <<a href="mailto:mail@joachim-breitner.de">mail@joachim-breitner.de</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi<br>
<br>
Am Donnerstag, den 01.02.2018, 11:42 +0100 schrieb Henning Thielemann:<br>
> On Thu, 1 Feb 2018, David Feuer wrote:<br>
><br>
> > I don't think we should limit containers development like that. I do<br>
> > imagine it would be valuable to have a separate package, perhaps called<br>
> > verified-containers, that tries to stay a few weeks or months behind<br>
> > containers.<br>
><br>
> I am happy to change all my dependencies from 'containers' to<br>
> 'containers-verified' (for easier association in a lexicographically<br>
> ordered list).<br>
<br>
that is an interesting idea, and a nicely generalizable pattern,<br>
David.<br>
<br>
I guess there are a view variants:<br>
<br>
Should containers-verified export only the verified subset of the API,<br>
or all of it? The former is more honest, the latter easier to switch to<br>
for users.<br>
<br>
Should it<br>
a) simply depend on a particular version of containers, and re-export<br>
the functions, or<br>
b) be a real code copy, or<br>
c) be a code copy with the exception of the data types, so that you<br>
can interoperate with the existing containers library?<br>
<br>
b (maybe even with hiding the ….Internals module) prevents users from<br>
creating non-well-formed trees, but it would prevent you from using<br>
containers-verified in a library that exports the types as part of its<br>
API. Maybe one could add “toVerified” and “fromVerified” functions that<br>
convert between the two, with run-time checks?<br>
<br>
<br>
Cheers,<br>
Joachim<br>
<br>
<br>
<br>
--<br>
Joachim Breitner<br>
<a href="mailto:mail@joachim-breitner.de">mail@joachim-breitner.de</a><br>
<a href="http://www.joachim-breitner.de/" rel="noreferrer" target="_blank">http://www.joachim-breitner.<wbr>de/</a><br>
<br>______________________________<wbr>_________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org">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-<wbr>bin/mailman/listinfo/libraries</a><br>
<br></blockquote></div></div>