make Option's map and map_default use a lifetime