title: Play JSON serialize/deserialize
body: <p>I'm trying to go create some formats for this:</p>
  
  <pre><code>  case class Work[T](todo: Seq[T], failed: Seq[T], success: Seq[T])
  
    object Work {
      implicit def format[T](implicit r: Reads[T], w: Writes[T]): Format[Work[T]] = Json.format[Work[T]]
    }
  
    object InternalMessage {
      implicit def format[D, R](implicit
                                rD: Reads[D],
                                wD: Writes[D],
                                rR: Reads[R],
                                wR: Writes[R]
                               ): Format[InternalMessage[D, R]] = Json.format[InternalMessage[D, R]]
  
    }
  
    case class InternalMessage[D, R](
                                      download: List[Work[D]],
                                      refine: List[Work[R]],
                                      numberOfTries: Int
                                    )
  </code></pre>
  
  <p>This doesn't work and I don't understand why. The error is</p>
  
  <pre><code>[error] /home/oleber/develop/data-platform/modules/importerTemplate/src/main/scala/template/TemplateModel.scala:46: No apply function found matching unapply parameters
  [error]     implicit def format[T](implicit r: Reads[T], w: Writes[T]): Format[Work[T]] = Json.format[Work[T]]
  [error]                                                                                              ^
  [error] /home/oleber/develop/data-platform/modules/importerTemplate/src/main/scala/template/TemplateModel.scala:55: No apply function found matching unapply parameters
  [error]                              ): Format[InternalMessage[D, R]] = Json.format[InternalMessage[D, R]]
  </code></pre>
  
  <p>Thanks for any help</p>