'merge' is allowed to return either a Version or a Promise for one