title: Arrow lens won't let me set a nullable property to null
body: <p>Given this (extremely simplified) code :</p>
  <pre><code>@optics
  data class MigrationStatus(val token: String?)
  
  val m = MigrationStatus(null)
  </code></pre>
  <p>I can call</p>
  <pre><code>val m1 = MigrationStatus.token.modify(m) { &quot;some token&quot; }
  </code></pre>
  <p>But as the argument type is a non nullable <code>String</code>, how can I modify <code>token</code> back to <code>null</code> ? Of course</p>
  <pre><code>val m2 = MigrationStatus.token.modify(m1) { null }
  </code></pre>
  <p>does not compile.</p>
  <p>The same happens when changing <code>token</code> type to an <code>Option&lt;String&gt;</code> when trying to set it to <code>None</code>, but I avoided it as it is now <a href="https://github.com/arrow-kt/arrow-core/issues/114" rel="nofollow noreferrer">deprecated</a> (which I'm not sure I like, but that's another matter).</p>
  <p>Did I miss something obvious ?</p>