I removed the last top-level effect (the execution of cpp).
The idea is that ParserUnit.ml and each ParserMain.ml get closer
to pascaligo.ml, cameligo.ml and reasonligo.ml, respectively.
* Duplicate variants in the same type declaration
* Duplicate parameter in the same function declaration
* Shadowing of predefined value in a declaration
I fixed the architecture for that support: ParserMain.ml is now where
those specific errors are handled, and they are produced by the
semantic actions of the parsers.