title: What is the purpose of `pure` in Applicative Functor
body: <blockquote>
    <p>Meet the Applicative typeclass. It lies in the Control.Applicative module and it defines two methods, <code>pure and &lt;*&gt;</code>. It doesn't provide a default implementation for any of them, so we have to define them both if we want something to be an applicative functor.</p>
  </blockquote>
  
  <p>I am trying to understand who is using <code>pure</code> function. I do use <code>(&lt;*&gt;)</code> function for which applicative functors are most useful for. But I am not sure who really uses <code>pure</code>.</p>
  
  <p>I read something like <code>pure (+3) &lt;*&gt; Just 10</code> but it can be written as <code>Just (+3) &lt;*&gt; Just 10</code> too.</p>
  
  <p>Above is just one confusion of too many I have. What is the true purpose of defining <code>pure</code> and when do I get to use it (or) who is already using it?</p>