Flatmap is powerful because you can chain together operations returning monads with it, e.g. to build a chain of futures when you need several consecutive database queries. My logic for saying that it’s more powerful was simply due to the fact that other than simple map functionality it also has the flatten functionality. You can always use flatMap as map by wrapping the function result into a monadic context, e.g. List().map(x => y) is the same as List().flatMap(x => List(y)).