<div dir="ltr">Er.. my mistake. Control.Applicative.<div><br></div><div>That is what it is we don't re-export that is used in Traversal. =)</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Apr 30, 2014 at 2:47 AM, Edward Kmett <span dir="ltr"><<a href="mailto:ekmett@gmail.com" target="_blank">ekmett@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Not sure.</div><div><br></div>An even simpler case is something like exporting a Traversal but not exporting Data.Traversable, which appears in the expansion, etc.<div>
<br></div><div>These sorts of things happen in code using lens. Older versions of lens didn't export all of the types needed to write out the type signature long hand without extra imports, just to avoid cluttering the namespace.</div>
<span class="HOEnZb"><font color="#888888">
<div><br></div><div>-Edward</div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Apr 30, 2014 at 2:10 AM, Ganesh Sittampalam <span dir="ltr"><<a href="mailto:ganesh@earth.li" target="_blank">ganesh@earth.li</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>On 23/04/2014 20:04, <a href="mailto:dm-list-haskell-libraries@scs.stanford.edu" target="_blank">dm-list-haskell-libraries@scs.stanford.edu</a> wrote:<br>


> Edward Kmett <<a href="mailto:ekmett@gmail.com" target="_blank">ekmett@gmail.com</a>> writes:<br>
><br>
>> You can wind up in perfectly legitimate situations where the name for the<br>
>> type you are working with isn't in scope, but where you can write a<br>
>> combinator that would infer to have that type. I'd hate to lose that.<br>
>><br>
>> It is admittedly of marginal utility at first glance, but there are some<br>
>> tricks that actually need it, and it can also arise if a type synonym<br>
>> expands to a type that isn't exported or brought into scope, so trying to<br>
>> push this line of reasoning too far I is possibly not too productive.<br>
><br>
> Good point.  In particular, it's not weird at all want to export type<br>
> synonyms on their own, particularly where ghost type parameters are used<br>
> to select between only a few cases.  Consider something like this<br>
> (inspired by postgresql-orm):<br>
<br>
</div>Is there an abstraction being protected by only exporting the type<br>
synonym in cases like this?<br>
<br>
Cheers,<br>
<br>
Ganesh<br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>