title: What is wrong with this elixir map example?
body: <p>I would have imagine that the following would work, based on articles I found online:</p>
  
  <pre><code>iex(9)&gt; q
  %{one: 1, two: 2}
  iex(10)&gt; nq = %{ q | three: 4}   
  ** (KeyError) key :three not found in: %{one: 1, two: 2}
      (stdlib) :maps.update(:three, 4, %{one: 1, two: 2})
      (stdlib) erl_eval.erl:255: anonymous fn/2 in :erl_eval.expr/5
      (stdlib) lists.erl:1262: :lists.foldl/3
  iex(10)&gt; nq = %{ q | :three =&gt; 4}
  ** (KeyError) key :three not found in: %{one: 1, two: 2}
      (stdlib) :maps.update(:three, 4, %{one: 1, two: 2})
      (stdlib) erl_eval.erl:255: anonymous fn/2 in :erl_eval.expr/5
      (stdlib) lists.erl:1262: :lists.foldl/3
  </code></pre>
  
  <p>I was trying to add a new element to the map.
  Can anyone tell me what I'm doing wrong? I'm running the following:</p>
  
  <pre><code>Erlang/OTP 18 [erts-7.2] [source-e6dd627] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]
  
  Interactive Elixir (1.3.0-dev) - press Ctrl+C to exit (type h() ENTER for help)
  </code></pre>