make use of rebindable::value_type<E> where possible.