ex. 3.20 - flatMap - coarse version
ex. 3.20 - flatMap - 2nd impl : better