in Haskell. This version of cpp is pretty-much feature-complete, and compatible with the -traditional style. It has two main modes: * conditional compilation only (--nomacro), * and full macro-expansion (default).