title: What are the reserved keywords in Elm?
body: <p>Every once in a while you get a compiler error like this:</p>
  
  <pre><code>It looks like the keyword `port` is being used as a variable.
  </code></pre>
  
  <p>That's annoying. Is there a complete official list of these keywords? I've gotten as far as finding <a href="https://github.com/elm-lang/elm-compiler/blob/e9cfb680b1cddc80268ae15262b2389a2a852fc6/src/Reporting/Error/Syntax.hs" rel="noreferrer">where the error messages are generated</a>, but I couldn't find where the keywords are actually defined.</p>
  
  <p>Meanwhile, here's a probably incomplete or incorrect list of keywords I found by browsing the <a href="http://elm-lang.org/docs/syntax" rel="noreferrer">syntax</a> page and trying keywords in the repl:</p>
  
  <ul>
  <li>let</li>
  <li>in</li>
  <li>where</li>
  <li>module</li>
  <li>exposing</li>
  <li>type</li>
  <li>port</li>
  <li>import</li>
  <li>infixr</li>
  <li>as</li>
  <li>if</li>
  <li>else</li>
  <li>then</li>
  </ul>