`mpl::identity<typename xxx::type>` looks redundant, is it needed?