cmscalzo
2018-4-29 17:20:29

@cmscalzo has joined the channel


shu--hung
2018-4-30 01:39:58

From my limited understanding, I think contract-out would create a new identifier, bind it to the contract-attached value and provide it rename-out, something like (provide (contract-out [f ctc])) (define f ...) ;=> (provide (rename-out [outside-f f])) (define f ...) (define outside-f (contract ctc f pos-party neg-party))


shu--hung
2018-4-30 01:41:46

but I think the actual outside-f is much more complicated since the negative party is only known when the current module is required by its client. I don’t know the full story there.


shu--hung
2018-4-30 01:42:29

say, outside-f is probably actually a transformer that when expanded will turn into the real contracted value