Interesting problem & solution.

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.

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.

Richard

> On Oct 19, 2016, at 7:45 AM, Christopher Done <chrisd...@gmail.com> wrote:
> 
> 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.
> 
> Here's a summary of the issue:
> 
> https://github.com/commercialhaskell/intero/issues/280#issuecomment-254784904 
> <https://github.com/commercialhaskell/intero/issues/280#issuecomment-254784904>
> 
> And a strawman proposal of how it could be solved:
> 
> https://github.com/commercialhaskell/intero/issues/280#issuecomment-254787927 
> <https://github.com/commercialhaskell/intero/issues/280#issuecomment-254787927>
> 
> What do you think? 
> 
> 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_.
> 
> Ciao!
> _______________________________________________
> ghc-devs mailing list
> ghc-devs@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to