public LinkedModule Compile(SourceModule sourceModule) { Contract.Requires(sourceModule != null); // package up our inputs to the linker LinkContext linkContext = new LinkContext(); linkContext.AddModule(sourceModule); // load any imports that haven't already been loaded linkContext.LoadImports(); // link Linker linker = new Linker(); linker.Link(linkContext); // return the result return(linkContext.LinkedModule); }