title: Why is Functor in scala cats required
body: <p>I have just started to learn <code>Scala cats</code> framework. I am reading <code>Functor</code>. I understood its features but I don't understand it's usage. Why should I use it if there is a <code>map</code> method already available in <code>Functors</code> like <code>List</code>, <code>Option</code> etc.</p>
  
  <p>As an example,</p>
  
  <pre><code>val list = List(1, 2, 3)
  Functor[List].map(list)(x =&gt; x * 2)
  </code></pre>
  
  <p>But the same can be achieved with</p>
  
  <pre><code>list.map(x =&gt; x * 2)
  </code></pre>
  
  <p>What do we get when we abstract the method <code>map</code> inside <code>Functor</code> trait.
  Can someone please throw some light on it so that I understand its usage.</p>