Is it possible to implement everything via
map_range
and remove map
from the public interface? If that's feasible, then the problem goes away.