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