This paper presents a module system designed for largescale programming in Scheme. The module system separates speci cations of objects from their implementations, permitting the separate development, compilation, and testing of modules. The module system also includes a robust macro facility. We discuss our design goals, the design of the module system, implementation issues, and our future plans.