<div dir="ltr"><div>This sounds like a thing that should be in the GHC API (the tyvar to provenance lookup).<br><br></div>Alan<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 19, 2016 at 2:48 PM, Richard Eisenberg <span dir="ltr"><<a href="mailto:rae@cs.brynmawr.edu" target="_blank">rae@cs.brynmawr.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>Interesting problem & solution.</div><div><br></div><div>Here's a wacky idea, from a position of utter ignorance about your environment: could you use color? Already, when I saw `b :: a` in the commentary there, where `b` is in scope as a type variable, it seemed wrong to me.</div><div><br></div><div>In any case, I can answer your simpler question: yes, with some work, you can get from a tyvar to its provenance. A tyvar's Name will have its binding location in it. If you also keep track of binding locations as you spot foralls, you should be able to match them up. In theory.</div><div><br></div><div>Richard</div><br><div><blockquote type="cite"><div><div class="h5"><div>On Oct 19, 2016, at 7:45 AM, Christopher Done <<a href="mailto:chrisdone@gmail.com" target="_blank">chrisdone@gmail.com</a>> wrote:</div><br class="m_-3159355358584398534Apple-interchange-newline"></div></div><div><div><div class="h5"><div dir="ltr">We've encountered a problem in Intero which is that when inspecting types of expressions and patterns, sometimes it happens that the type, when pretty printing, yields variables of the same name but which have different provenance.<div><br></div><div>Here's a summary of the issue:<br><div><br></div><div><a href="https://github.com/commercialhaskell/intero/issues/280#issuecomment-254784904" target="_blank">https://github.com/commercialh<wbr>askell/intero/issues/280#<wbr>issuecomment-254784904</a><br></div></div><div><br></div><div>And a strawman proposal of how it could be solved:</div><div><br></div><div><a href="https://github.com/commercialhaskell/intero/issues/280#issuecomment-254787927" target="_blank">https://github.com/commercialh<wbr>askell/intero/issues/280#<wbr>issuecomment-254787927</a><br></div><div><br></div><div>What do you think? </div><div><br></div><div>Also, if I were to implement the strawman proposal, is it possible to recover from a `tyvar :: Type` its original quantification/its "forall"? I've had a look through the API briefly and it looks like a _maybe_.</div><div><br></div><div>Ciao!</div></div></div></div>
______________________________<wbr>_________________<br>ghc-devs mailing list<br><a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br><a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/ghc-devs</a><br></div></blockquote></div><br></div><br>______________________________<wbr>_________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/ghc-devs</a><br>
<br></blockquote></div><br></div>