title: How to flatMap cats Applicatives
body: <p>I've started learning functional programming with Cats and I stuck with flatMapping (merging) applicatives <code>F[List]</code>.</p>
  
  <p>What is very simple in pure Scala is flatmapping list of lists like that:</p>
  
  <pre><code>val animals = List("Dog", "Cat", "Bird")
  def getBreads(animal: String): List[String] = ...
  
  val allAnimalsBreads = animals.flatMap(animal =&gt; getBread(animal)) // this will be just List[String]
  </code></pre>
  
  <p>How can I do the same if everything is wrapped with applicative?:</p>
  
  <pre><code>val animals = List("Dog", "Cat", "Bird").pure[F]
  def getBreads(animal: String): F[List[String]] = ...
  
  val allAnimalsBreads = ? // this should be F[List[String]]
  </code></pre>