fix type-deduction for the odd case where the container is also the contained (container::value_type == container)