With Circe Json why is implicit resolution slower at runtime : <p>Why is Circe Json slower with implicit decoder lookup compared to saving the implicit decoder to a val.</p>

<p>I would expect these to be the same because implicit resolution is done at runtime.</p>

<pre><code>import io.circe._
import io.circe.generic.auto._
import io.circe.jackson
import io.circe.syntax._

private val decoder = implicitly[Decoder[Data.Type]]
def decode(): Either[Error, Type] = {
  jackson.decode[Data.Type](Data.json)(decoder)
}

def decodeAuto(): Either[Error, Type] = {
  jackson.decode[Data.Type](Data.json)
}


[info] DecodeTest.circeJackson             thrpt  200   69157.472 ± 283.285  ops/s
[info] DecodeTest.circeJacksonAuto         thrpt  200   67946.734 ± 315.876  ops/s
</code></pre>

<p>The full repo can be found here.
<a href="https://github.com/stephennancekivell/some-jmh-json-benchmarks-circe-jackson">https://github.com/stephennancekivell/some-jmh-json-benchmarks-circe-jackson</a></p>
