template<class car,class cdr> struct Cell;
typedef Cell<class X,Nil> cell;

 Cellが本体未定義でも使用可能なのと同じで、
Xは未定義でも、template引数に直にclass Xと書いてやれば、
XをCellに渡せる訳だけど、このXどこか広域空間以外の名前空間に
所属させる事できないの?
Xの実体は不要で、templateを特殊化するための識別子としてだけ
使いたいんだけど、広域空間にあると他の名前との干渉が気になって
安易に使えない。