
Why ?
Didier Verna
<No Title>
template <template <class> class M, typename T, typename V>
struct ch_value_ <M <tag::value_<T>>, V>
{ typedef M<V> ret; };
template <template <class> class M, typename I, typename V>
struct ch_value_ <M <tag::image_<I>>, V>
{ typedef M <mln_ch_value(I, V)> ret; };
template <template <class, class> class M, typename T,
typename I, typename V>
struct ch_value_ <M <tag::value_<T>, tag::image_<I>>, V>
{ typedef mln_ch_value(I, V) ret; };
template <template <class, class> class M, typename P,
typename T, typename V>
struct ch_value_ <M <tag::psite_<P>, tag::value_<T>>, V>
{ typedef M<P, V> ret; };
2/3