default macro implementation of map