m4のためのプリプロセスm4pp作ってm4臭さを消したらええんやないの?

例えばPascalで
 m4pp < m4pp.pa | m4 > m4pp.pas

最初はm4pp.pasを対象とする言語で書いて、安定したらm4pp.paに手で書き替えてm4pp.pasを上のように作る。
で、新しいm4pp.pasから作ったm4ppでm4pp.paからm4pp.pasを作ると一つ前のm4pp.pasと一致するはずよね?