title: Concise way of updating a nested value inside a record in Elm (0.18)
body: <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>