title: Using Klaxon for JSON with Arrow for Option in Kotlin?
body: <p>Koltin newbie here. If I have a library with (Kotlin) Borrowers and Books and a <code>Book</code> is checked out when it has a <code>Borrower</code> (using Arrow's <code>Option</code> datatype):</p>
  
  <pre><code>data class Borrower(val name: Name, val maxBooks: MaxBooks)
  data class Book(val title: Title, val author: Author, val maybeBorrower: Option&lt;Borrower&gt; = None)
  </code></pre>
  
  <p>How do I encode and decode between a tiny library:</p>
  
  <pre><code>val br1 = Borrower("Borrower1", 1)
  val bk1 = Book("Title1", "Author1", Some(br1))
  val bk2 = Book("Title2", "Author2", None)
  </code></pre>
  
  <p>And it's JSON representation:</p>
  
  <pre><code>val jsonStringBooks = """[{"title":"Title1","author":"Author1","borrower":{"name":"Borrower1","maxBooks":1}},{"title":"Title2","author":"Author2","borrower":null}]"""
  </code></pre>
  
  <p>Using Klaxon?</p>
  
  <p>The representation of an <code>Option</code> (or <code>Either</code>?) through Klaxon is throwing me off. I believe Scala's spray-json handles these datatypes.</p>
  
  <p>Thank you.</p>