[racket] tool: show module exports

From: Jon Rafkind (rafkind at cs.utah.edu)
Date: Thu Jul 22 12:21:50 EDT 2010

  On 07/21/2010 02:47 PM, Jon Rafkind wrote:
>  Yea sure. I was just getting the import stuff to show. If hacking 
> contracts is too hard maybe I can get some advice at PLT/Racket day.
>
> On 07/21/2010 12:46 PM, Matthias Felleisen wrote:
>> Jon, do you want to give it a try? And perhaps Sam and you can then 
>> figure out how to get the types out.
>>
>>
>> On Jul 21, 2010, at 7:26 AM, Robby Findler wrote:
>>
>>> One, non-optimal way to get the contracts is to evaluate the module
>>> and use object-contract on the exports (non-optimal because dependent
>>> contracts will have ...s in them, etc).
>>>

Ok I did the non-optimal way Robby suggested, seems to work ok. That 
`sync-channel.rkt:155' bit is an inline-lambda within the contract.

$ racket check.rkt --exports async-channel.rkt
Exports
   Phase 0 (runtime)
     Variables
       async-channel?
     Syntaxes
       async-channel-get contract (-> async-channel? any/c)
       async-channel-put contract (-> async-channel? any/c any/c)
       async-channel-put-evt contract (-> async-channel? any/c evt?)
       async-channel-try-get contract (-> async-channel? any/c)
       make-async-channel contract (case-> (-> async-channel?) (-> (or/c 
#f ...sync-channel.rkt:155:54) async-channel?))


Posted on the users mailing list.