template<class car,class cdr> struct Cell;
template
<
class T0,
class T1 = void,
・・中略・・
class TE = void,
class TF = void
>
struct ES;
template<class scell> struct List
{
typedef scell cell;
};
template
<
class T0,
class T1,
・・中略・・
class TE,
class TF
>
struct List
<
ES
<
T0,
T1,
・・中略・・
TE,
TF
>
>
{
typedef typename Nelsp
<
typename Fit
<
Cell<T0,
Cell<T1,
・・中略・・
Cell<TE,
Cell<TF,
void
>
>
・・中略・・
>
>
>
::cell
>
::cell cell;
};