Add shrinkMap and shrinkMapBy

I find using this pattern quite often