cpp does all kinds of things that depend on C syntax that would break ML source files (like removing /*--*/ delimited comments, inserting #line lines, etc.).