Racket's macro, module and contract system

Is there a document or a paper detailing the implementation of Racket's macro and module system?

Also, I need a document detailing the contract system (contracts) in Racket.

Thanks

I think the standard references are

I don't have a reference for the module system offhand, though
"Submodules in Racket: You Want it When, Again?" looks promising. I
recall From macros to DSLs: the evolution of
Racket

also being enlightening. In fact, glancing at this latter indicates
that the "You want it when" paper is also about the module system!

If you're looking specifically for the compilation of modules to
linklets, perhaps the Racket reference has some (ahem) references that
might help?

1 Like

Sure, I am also interested in linklets as well in the compilation phase, you are welcome to share those references as well, however for now, I am looking at how the module and macro system go hand in hand and how they interact together.

Also any paper or reference to Racket contracts, which seems to be the basis for typed racket, I am specifically interested in how typed racket utilizes those contracts.

Thanks

You want it when, which @benknoble pointed to, is the definitive paper on the relationship between modules and macros.

Racket contracts are discussed in many papers, the first is Contracts for Higher order functions. The use of contracts by Typed Racket is discussed again in a number of papers, including The Design and Implementation of Typed Scheme and my dissertation.

1 Like

There is a TR Bibliography, and I’m sure something in the Racket bibliography is about contracts (I just didn’t dig through the Reference section on contracts to find out). Sometimes there are paper links in the Guide versions, too.

1 Like