add size checking for map! and mapdiff!