Concise way of updating a nested value inside a record in Elm (0.18) : <p>I am looking for a concise way of updating a nested value inside a record in Elm (0.18).</p>

<p>Given the following example:</p>

<pre><code>person = { name = "Steven", address = { country = "Spain", city = "Barcelona" } }
</code></pre>

<p>I can update person.name to "Steve" using the following expression:</p>

<pre><code>{ person | name = "Steve" }
</code></pre>

<p>However, I am looking for a way to update a nested value. For instance, I would like to update person.address.city to "Madrid". I tried the following:</p>

<pre><code>{ person | address.city = "Madrid" } 
{ person | address = { address | city = "Madrid" } } 
{ person | address = { person.address | city = "Madrid" } } 
</code></pre>

<p>The compiler rejects all these variations. The shortest valid option I see is:</p>

<pre><code>let personAddress = person.address in { person | address = { personAddress | city = "Madrid" } }
</code></pre>

<p>This seems to be a bit too much code just to update a nested value, Do you know if there is a better/shorter way of achieving that?</p>
