title: What are the benefits of such flexible "self-identifiers" in F#?
body: <p>While I understand <a href="http://msdn.microsoft.com/en-us/library/dd233205.aspx#Y1944">self-identifiers</a> in F#, I am puzzled as to the benefits of such flexibility.  Why does F# not just support <code>this.Blah</code> as C# does and be done with it?  I'm guessing some people use it to improve readability, but even that seems a stretch.  So, what are the uses/benefits of this language feature?</p>
  
  <p><em>For the un-initiated, below is an example that defines a type-wide self identifier "self" and a method scoped identifier "this".  The example is taken from the MSDN article linked above.</em></p>
  
  <pre><code>type MyClass2(dataIn) as self =
     let data = dataIn
     do
         self.PrintMessage()
     member this.PrintMessage() =
         printf "Creating MyClass2 with Data %d" data
  </code></pre>