#ifndef TYPEASVALUE_SRC_LIST_OPERATION_APPEND_H_ #define TYPEASVALUE_SRC_LIST_OPERATION_APPEND_H_ #include "higher/fold.h" namespace tav { namespace detail { template struct replace_void_cdr { template using function = Cons< CAR, If< Eval>, Replacement, CDR > >; }; } template < typename Primary, typename Secondary > using Append = If< Eval>, Secondary, Fold< detail::replace_void_cdr::template function, void, Primary > >; } #endif // TYPEASVALUE_SRC_LIST_OPERATION_APPEND_H_