Add Result.mapN and tests