[racket] tool: show module exports

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Wed Jul 21 05:26:25 EDT 2010

Thou shall ask and receive. Thanks! 

Can I get the contracts if it comes via provide/contract and/or the types if it comes from Typed Racket (this might be the difficult one, because types are gone after expansion). 

And I think we should somehow combine provide-document with provide/contract and show the docs, too. And while I am at it, the tool should gather the check-xyz's and turn them into examples so hat people can easily use the function/class/method :-) 

My preference would be to include this into the module browser. That's where it belongs 

-- Matthias

On Jul 21, 2010, at 2:15 AM, Jon Rafkind wrote:

> I wrote a simple tool (attached) that displays all the exports from a module; their name as well as their phase. I'll probably make it show imports too when I get a chance.
> I'd like this sort of information in DrRacket as well, either I can make a plugin or maybe check syntax can do it.
> $ racket ~/tmp/check.rkt match.rkt
> Phase 0 (runtime)
> Variables
>  exn:misc:match? from /home/jon/svn/plt/collects/racket/match/match.rkt
>  match-equality-test from /home/jon/svn/plt/collects/racket/match/match.rkt
> Syntaxes
>  define-match-expander
>  match from /home/jon/svn/plt/collects/racket/match/match.rkt
>  match* from /home/jon/svn/plt/collects/racket/match/match.rkt
>  match*/derived from /home/jon/svn/plt/collects/racket/match/match.rkt
>  match-define from /home/jon/svn/plt/collects/racket/match/match.rkt
>  match-lambda from /home/jon/svn/plt/collects/racket/match/match.rkt
>  match-lambda* from /home/jon/svn/plt/collects/racket/match/match.rkt
>  match-lambda** from /home/jon/svn/plt/collects/racket/match/match.rkt
>  match-let from /home/jon/svn/plt/collects/racket/match/match.rkt
>  match-let* from /home/jon/svn/plt/collects/racket/match/match.rkt
>  match-letrec from /home/jon/svn/plt/collects/racket/match/match.rkt
>  match/derived from /home/jon/svn/plt/collects/racket/match/match.rkt
>  struct* from /home/jon/svn/plt/collects/racket/match/match.rkt
> Phase 1 (syntax)
> Variables
>  match-...-nesting from /home/jon/svn/plt/collects/racket/match/match.rkt as match-...-nesting
> Syntaxes
> $ racket ~/tmp/check.rkt -h
> checker [ <option> ... ] <file>
> where <option> is one of
>  --phase <phase> : Only show identifiers at this phase
> <check.rkt>_________________________________________________
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/users

Posted on the users mailing list.