TODO
----

  - If more than the expected number of arguments is supplied to a template
    name when forcing the expansion of either the declaration or the
    implementation, a core dump will sometimes result.

  - Treatment of ## operator is still not ANSI conformant. In particular the
    following

      #define _PASTE(x,y) x ## y
      #define PASTE(x,y) _PASTE(x,y)

      #define Coord xxx(Coord)
      #define xxx(qqq) PASTE(iv, qqq)

      xxx(Coord);
      Coord;

    should yield

      ivivCoord;
      ivCoord;

    and not

      ivCoord;
      ivCoord
