title: Where is "id" literal defined?
body: <p>FsUnit source code contains an unusual definition:</p>
  
  <pre>let be = id</pre>
  
  <p>FSI output:</p>
  
  <pre>val was : ('a -> 'a)</pre>
  
  <p>The semantics of the "id" is the parenthesized form of the following statement:</p>
  
  <pre>let be x = x</pre>
  
  <p>FSI output:</p>
  
  <pre>val be : 'a -> 'a</pre>
  
  <p>You can see the slight difference: the latter example replaces expression <strong>be true</strong> with <strong>true</strong>, while the first syntax would represent it as <strong>(true)</strong>.</p>
  
  <p>What puzzles me is that I can't find any reference to "id" in F# language reference, neither it is described in a "Programming F#" book. Moreover, "id" is not a reserved keyword, I can define assign "id" to something else, and then I no longer can use it in a way that is shown in the first example. So I wonder if there are any F# documents that describe this literal and its semantics.</p>