Header file sequences/map.hpp

namespace brigand
{
    namespace lazy
    {
        template <typename M, typename K>
        struct lookup_at
        {
            using target_t = type_<K>;
            
            using type = decltype(M::at(target_t{}));
        };
        
        template <typename M, typename K>
        struct lookup
        : lookup_at<M, K>::type
        {
        };
    }
    
    template <typename M, typename K>
    using lookup = typename lazy::lookup<M, K>::type;
    
    template <class ... Ts>
    using map = typename detail::make_map<Ts...>::type;
}