In cases a list is a set it is possible to do mp_find quicker. Is it worth to add this?
template <class S>
using mp_enumerate = mp_transform<mp_list, S, mp_iota<mp_size<S>>>;
template <class S, class V>
using mp_set_find = mp_second<mp_map_find<mp_enumerate<S>, V>>;