title: Purpose of `render` in json4s
body: <p>In  json4s examples and documentation I often see the idioms</p>
  
  <pre><code>compact(render(jval))
  </code></pre>
  
  <p>and</p>
  
  <pre><code>pretty(render(jval))
  </code></pre>
  
  <p>I do not think I have actually seen an example with compact or pretty applied directly to a code generated <code>JValue</code>,
  but it is not clear to me what <code>render</code> is doing here.
  Render has type <code>JValue =&gt; JValue</code> and I do not see any obvious difference it makes
  and running </p>
  
  <pre><code>json.take(100000).filter(x =&gt; compact(render(x)) != compact(x))
  </code></pre>
  
  <p>on some of my data returns an empty an empty collection.</p>
  
  <p><strong>What does <code>render</code> actually do?</strong></p>