title: What does "ap" of \/ in Scalaz do?
body: <p>I am looking at <a href="https://github.com/scalaz/scalaz/blob/scalaz-seven/core/src/main/scala/scalaz/Either.scala" rel="nofollow">disjunction</a> type of scalaz and I noticed method <code>ap</code></p>
  
  <pre>
    /** Apply a function in the environment of the right of this disjunction. */
    def ap[AA >: A, C](f: => AA \/ (B => C)): (AA \/ C) =
      f flatMap (ff => map(ff(_)))
  </pre>
  
  <p>I guess I understand what it does. Now I wonder when and why one should actually use it ? Are there any examples of using this <code>ap</code> function ?</p>