require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&_TYPELIST_H)) {
    eval 'sub _TYPELIST_H () {1;}' unless defined(&_TYPELIST_H);
    require 'ext/type_traits.ph';
    eval("sub value () { false; }") unless defined(&value);
    eval("sub value () { contains_<Tl; }") unless defined(&value);
    eval("sub value () { true; }") unless defined(&value);
    eval("sub include_hd () { Pred<Hd>::value; }") unless defined(&include_hd);
    eval 'sub _GLIBCXX_TYPELIST_CHAIN1 {
        my($X0) = @_;
	    eval q( &__gnu_cxx:: &typelist:: &chain<$X0,  &__gnu_cxx:: &typelist:: &null_type>);
    }' unless defined(&_GLIBCXX_TYPELIST_CHAIN1);
    eval 'sub _GLIBCXX_TYPELIST_CHAIN2 {
        my($X0, $X1) = @_;
	    eval q( &__gnu_cxx:: &typelist:: &chain<$X0,  &_GLIBCXX_TYPELIST_CHAIN1($X1) >);
    }' unless defined(&_GLIBCXX_TYPELIST_CHAIN2);
    eval 'sub _GLIBCXX_TYPELIST_CHAIN3 {
        my($X0, $X1, $X2) = @_;
	    eval q( &__gnu_cxx:: &typelist:: &chain<$X0,  &_GLIBCXX_TYPELIST_CHAIN2($X1, $X2) >);
    }' unless defined(&_GLIBCXX_TYPELIST_CHAIN3);
    eval 'sub _GLIBCXX_TYPELIST_CHAIN4 {
        my($X0, $X1, $X2, $X3) = @_;
	    eval q( &__gnu_cxx:: &typelist:: &chain<$X0,  &_GLIBCXX_TYPELIST_CHAIN3($X1, $X2, $X3) >);
    }' unless defined(&_GLIBCXX_TYPELIST_CHAIN4);
    eval 'sub _GLIBCXX_TYPELIST_CHAIN5 {
        my($X0, $X1, $X2, $X3, $X4) = @_;
	    eval q( &__gnu_cxx:: &typelist:: &chain<$X0,  &_GLIBCXX_TYPELIST_CHAIN4($X1, $X2, $X3, $X4) >);
    }' unless defined(&_GLIBCXX_TYPELIST_CHAIN5);
    eval 'sub _GLIBCXX_TYPELIST_CHAIN6 {
        my($X0, $X1, $X2, $X3, $X4, $X5) = @_;
	    eval q( &__gnu_cxx:: &typelist:: &chain<$X0,  &_GLIBCXX_TYPELIST_CHAIN5($X1, $X2, $X3, $X4, $X5) >);
    }' unless defined(&_GLIBCXX_TYPELIST_CHAIN6);
    eval 'sub _GLIBCXX_TYPELIST_CHAIN7 {
        my($X0, $X1, $X2, $X3, $X4, $X5, $X6) = @_;
	    eval q( &__gnu_cxx:: &typelist:: &chain<$X0,  &_GLIBCXX_TYPELIST_CHAIN6($X1, $X2, $X3, $X4, $X5, $X6) >);
    }' unless defined(&_GLIBCXX_TYPELIST_CHAIN7);
    eval 'sub _GLIBCXX_TYPELIST_CHAIN8 {
        my($X0, $X1, $X2, $X3, $X4, $X5, $X6, $X7) = @_;
	    eval q( &__gnu_cxx:: &typelist:: &chain<$X0,  &_GLIBCXX_TYPELIST_CHAIN7($X1, $X2, $X3, $X4, $X5, $X6, $X7) >);
    }' unless defined(&_GLIBCXX_TYPELIST_CHAIN8);
    eval 'sub _GLIBCXX_TYPELIST_CHAIN9 {
        my($X0, $X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8) = @_;
	    eval q( &__gnu_cxx:: &typelist:: &chain<$X0,  &_GLIBCXX_TYPELIST_CHAIN8($X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8) >);
    }' unless defined(&_GLIBCXX_TYPELIST_CHAIN9);
    eval 'sub _GLIBCXX_TYPELIST_CHAIN10 {
        my($X0, $X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9) = @_;
	    eval q( &__gnu_cxx:: &typelist:: &chain<$X0,  &_GLIBCXX_TYPELIST_CHAIN9($X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9) >);
    }' unless defined(&_GLIBCXX_TYPELIST_CHAIN10);
    eval 'sub _GLIBCXX_TYPELIST_CHAIN11 {
        my($X0, $X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9, $X10) = @_;
	    eval q( &__gnu_cxx:: &typelist:: &chain<$X0,  &_GLIBCXX_TYPELIST_CHAIN10($X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9, $X10) >);
    }' unless defined(&_GLIBCXX_TYPELIST_CHAIN11);
    eval 'sub _GLIBCXX_TYPELIST_CHAIN12 {
        my($X0, $X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9, $X10, $X11) = @_;
	    eval q( &__gnu_cxx:: &typelist:: &chain<$X0,  &_GLIBCXX_TYPELIST_CHAIN11($X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9, $X10, $X11) >);
    }' unless defined(&_GLIBCXX_TYPELIST_CHAIN12);
    eval 'sub _GLIBCXX_TYPELIST_CHAIN13 {
        my($X0, $X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9, $X10, $X11, $X12) = @_;
	    eval q( &__gnu_cxx:: &typelist:: &chain<$X0,  &_GLIBCXX_TYPELIST_CHAIN12($X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9, $X10, $X11, $X12) >);
    }' unless defined(&_GLIBCXX_TYPELIST_CHAIN13);
    eval 'sub _GLIBCXX_TYPELIST_CHAIN14 {
        my($X0, $X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9, $X10, $X11, $X12, $X13) = @_;
	    eval q( &__gnu_cxx:: &typelist:: &chain<$X0,  &_GLIBCXX_TYPELIST_CHAIN13($X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9, $X10, $X11, $X12, $X13) >);
    }' unless defined(&_GLIBCXX_TYPELIST_CHAIN14);
    eval 'sub _GLIBCXX_TYPELIST_CHAIN15 {
        my($X0, $X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9, $X10, $X11, $X12, $X13, $X14) = @_;
	    eval q( &__gnu_cxx:: &typelist:: &chain<$X0,  &_GLIBCXX_TYPELIST_CHAIN14($X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9, $X10, $X11, $X12, $X13, $X14) >);
    }' unless defined(&_GLIBCXX_TYPELIST_CHAIN15);
    eval 'sub _GLIBCXX_TYPELIST_CHAIN16 {
        my($X0, $X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9, $X10, $X11, $X12, $X13, $X14, $X15) = @_;
	    eval q( &__gnu_cxx:: &typelist:: &chain<$X0,  &_GLIBCXX_TYPELIST_CHAIN15($X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9, $X10, $X11, $X12, $X13, $X14, $X15) >);
    }' unless defined(&_GLIBCXX_TYPELIST_CHAIN16);
    eval 'sub _GLIBCXX_TYPELIST_CHAIN17 {
        my($X0, $X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9, $X10, $X11, $X12, $X13, $X14, $X15, $X16) = @_;
	    eval q( &__gnu_cxx:: &typelist:: &chain<$X0,  &_GLIBCXX_TYPELIST_CHAIN16($X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9, $X10, $X11, $X12, $X13, $X14, $X15, $X16) >);
    }' unless defined(&_GLIBCXX_TYPELIST_CHAIN17);
    eval 'sub _GLIBCXX_TYPELIST_CHAIN18 {
        my($X0, $X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9, $X10, $X11, $X12, $X13, $X14, $X15, $X16, $X17) = @_;
	    eval q( &__gnu_cxx:: &typelist:: &chain<$X0,  &_GLIBCXX_TYPELIST_CHAIN17($X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9, $X10, $X11, $X12, $X13, $X14, $X15, $X16, $X17) >);
    }' unless defined(&_GLIBCXX_TYPELIST_CHAIN18);
    eval 'sub _GLIBCXX_TYPELIST_CHAIN19 {
        my($X0, $X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9, $X10, $X11, $X12, $X13, $X14, $X15, $X16, $X17, $X18) = @_;
	    eval q( &__gnu_cxx:: &typelist:: &chain<$X0,  &_GLIBCXX_TYPELIST_CHAIN18($X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9, $X10, $X11, $X12, $X13, $X14, $X15, $X16, $X17, $X18) >);
    }' unless defined(&_GLIBCXX_TYPELIST_CHAIN19);
    eval 'sub _GLIBCXX_TYPELIST_CHAIN20 {
        my($X0, $X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9, $X10, $X11, $X12, $X13, $X14, $X15, $X16, $X17, $X18, $X19) = @_;
	    eval q( &__gnu_cxx:: &typelist:: &chain<$X0,  &_GLIBCXX_TYPELIST_CHAIN19($X1, $X2, $X3, $X4, $X5, $X6, $X7, $X8, $X9, $X10, $X11, $X12, $X13, $X14, $X15, $X16, $X17, $X18, $X19) >);
    }' unless defined(&_GLIBCXX_TYPELIST_CHAIN20);
    eval("sub value () { detail::contains_<root_type; }") unless defined(&value);
}
1;
