title: Play Framework 2.4 Writes[-A] vs OWrites[-A], Format[A] vs OFormat[A]. Purpose?
body: <p>What's the difference between Writes[-A] and OWrites[-A] in PlayFramework Json library? I have used Writes[A] but I can't figure out what's the purpose of OWrites. The same question applies to Format[A] vs OFormat[A]. </p>
  
  <p>The source code can be found <a href="https://github.com/playframework/playframework/blob/2.4.x/framework/src/play-json/src/main/scala/play/api/libs/json/Writes.scala" rel="noreferrer">here for Writes</a> and <a href="https://github.com/playframework/playframework/blob/2.4.x/framework/src/play-json/src/main/scala/play/api/libs/json/Format.scala" rel="noreferrer">here for Formats</a>. I have looked at them but I can't figure out the difference on their usages.</p>