Header file sequences/front.hpp

namespace brigand
{
    namespace lazy
    {
        template <class L, class ... T>
        struct push_front
        : detail::push_front_impl<L, T...>
        {
        };
    }
    
    template <class L, class ... T>
    using push_front = typename detail::push_front_impl<L, T...>::type;
    
    template <class L>
    using front = typename detail::front_impl<L>::type;
    
    namespace lazy
    {
        template <class L, class N = std::integral_constant<std::size_t, 1>>
        struct pop_front
        : detail::pop_front_impl<L, N::value>
        {
        };
    }
    
    template <class L, class N = std::integral_constant<std::size_t, 1>>
    using pop_front = typename detail::pop_front_impl<L, N::value>::type;
}