[Haskell-cafe] ANNOUNCE: haskell-names-0.1

AlanKim Zimmerman alan.zimm at gmail.com
Sun Jun 23 20:48:46 CEST 2013

I took a quick look at this, and came to the conclusion that the scope info
is available from GHC, but is not exposed by HaRe at this stage.

Rather than chasing something just to show it can be done, I am going to
use my limited time for HaRe.

By the way, I think buildwrapper generates a summary of a project as as
well, in JSON format.

Also, for GHC RenamedSource, querying any Name entity will provide the
package it came from (via


(Data.Generics.Text.gshow, syb-0.4.0:Data.Generics.Text),


On Fri, Jun 21, 2013 at 9:05 AM, AlanKim Zimmerman <alan.zimm at gmail.com>wrote:

> I have a feeling the work-in-progress Haskell Refactorer using the GHC API
> may be able to provide this information through its library interface.
> When I have some time over the weekend I will have a look.
> Alan
> On Fri, Jun 21, 2013 at 8:44 AM, Michael Sloan <mgsloan at gmail.com> wrote:
>> Roman: Awesome!  I'm really glad that this is ready for use!
>> Andrew: I have a tool that's a step towards doing this.  Instead of using
>> haskell suite, it uses ghci via hint to query module exports, and then uses
>> TH to reify them.  This has the benefit of supporting everything that GHC
>> supports, whereas there are currently some cases that haskell-src-exts
>> can't parse.  There's also the issue of supporting declarations generated
>> by template haskell.
>> Here's an example of diffing some of its output:
>> https://github.com/mgsloan/api-compat/blob/master/examples/template-haskell.api.diff
>> The main reason I haven't released the tool is that I was intending to do
>> structural diffs / handle renaming, so it's somewhat unfinished.  However I
>> believe it's reasonably usable: instead, the output is just structured in a
>> way that's reasonably amenable to diffing.
>> -Michael
>> On Thu, Jun 20, 2013 at 11:12 PM, Andrew Cowie <
>> andrew at operationaldynamics.com> wrote:
>>> On Thu, 2013-06-20 at 18:13 +0300, Roman Cheplyaka wrote:
>>> > Namely, it can do the following:
>>> >
>>> > *   for a module, compute its interface, i.e. the set of entities
>>> >     exported by the module, together with their original names.
>>> >
>>> > *   for each name in the module, figure out what it refers to — whether
>>> >     it's bound locally (say, by a where clause) or globally (and then
>>> >     give its origin).
>>> Is this a step toward being able to automatically derive an API version
>>> number [in the SO version sense of the word; ie, has a change happened
>>> requiring a version bump?]
>>> AfC
>>> Sydney
>>> _______________________________________________
>>> Haskell-Cafe mailing list
>>> Haskell-Cafe at haskell.org
>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20130623/24cbdcab/attachment.htm>

More information about the Haskell-Cafe mailing list