Creates and returns a new Provider that merges all Maps obtained from this into a single Map, which is created by the makeMap function.
makeMap should be a pure function.