I disagree. A preprocessor doesn't
1) transform the entire document
2) doesn't fully parse the input document
that is exactly why the c family on languages has such difficulty with modules: they are hacked on with a preprocessor and aren't part of the language.