DML employs a very simple module system, where a module is any source file that can be imported using the import directive. Such files may not contain a device declaration, but otherwise look like normal DML source files. The imported modules are merged into the main program as if all the code was contained in a single file (with some exceptions). This is similar to C preprocessor #include directives, but in DML each imported file must be possible to parse in isolation, and may contain declarations (such as bitorder) that are only effective for that file.