<div dir="ltr">Like I said, I don't like doing things like this for the reasons that you would expect. I don't like that it breaks the PVP, makes running your test suite more difficult, and makes your haddocks not include information that might be available. But to get back to the original proposal, what are your thoughts on providing Free, Cofree, and Fix in base? I gather from your previous comment that you would prefer anything to conditional instances, but do you find that these recursive data types are commonly used enough to merit inclusion in base?</div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Oct 16, 2016 at 3:34 PM, Henning Thielemann <span dir="ltr"><<a href="mailto:lemming@henning-thielemann.de" target="_blank">lemming@henning-thielemann.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
On Sun, 16 Oct 2016, Andrew Martin wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thanks for weighing in. It is possible to use cabal flags + CPP to work around this, although I don't like doing that for the reasons you would expect. I'm also not typically comfortable opening up an issue to ask a package maintainer to add a flag to enable conditional dependencies for instances.<br>
</blockquote>
<br></span>
Conditionally compiling instances into a package is not an option. If another package imports a certain version of your package it can expect the availability of all instances. There is no other way for a package to assert certain instances other than specifying the package version.<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">-Andrew Thaddeus Martin</div>
</div>