#ifndef TYPEASVALUE_SRC_LIST_OPERATION_HIGHER_FOLD_H_ #define TYPEASVALUE_SRC_LIST_OPERATION_HIGHER_FOLD_H_ namespace tav { template < template class Function, typename Initial, typename Current > struct Fold { typedef typename Function< Head, typename Fold>::type >::type type; }; template < template class Function, typename Initial > struct Fold { typedef Initial type; }; } #endif // TYPEASVALUE_SRC_LIST_OPERATION_HIGHER_FOLD_H_