title: F# type extensions property not works
body: <p>It is weird that extended property is not mutable...
  Could any one help?</p>
  
  <pre><code>open System.IO.Ports
  open System.Text
  open System.Text.RegularExpressions
  
  type UAgent&lt;'T&gt; = MailboxProcessor&lt;'T&gt;
  
  
  module ComPortManager =
      type MailboxProcessor&lt;'T&gt; with
          member this.sP = ref(new SerialPort("0"))
          member this.receivedSeq : byte [] = Array.empty
          member this.pastMsgSent : seq&lt;string&gt; = Seq.empty
  
      type Cmd =
      | Send = 0
      | Remove = 1
      | Add = 2
  
  
      type UartOP =
      | Open of unit
      | Comm of Cmd * string
      | Handler of Cmd * SerialDataReceivedEventHandler
  
  
      let CreateComPort = 
          fun pN bR (p : System.IO.Ports.Parity) dB (sB : System.IO.Ports.StopBits) to' handler -&gt;
              match Array.exists (fun a -&gt; a = pN) (SerialPort.GetPortNames()) with
              | false -&gt; failwith "Not valid comport!"
              | _ -&gt; ()            
  
              let mutable agent : UAgent&lt;UartOP&gt; =
                  UAgent.Start(handler)
              let mutable sP = new SerialPort(pN)
              agent.sP := sP
              agent.sP.contents.Close()
              match agent.sP.contents &lt;&gt; null with
              | true -&gt;
                  agent.sP.contents.Close() 
              | false -&gt;
                  ()
  
              agent.sP.contents.BaudRate    &lt;- bR
              printfn "\r\n=o==&gt; %s" (bR.ToString())
              printfn "\r\n=o==&gt; %s" (sP.BaudRate.ToString())
              printfn "\r\n=o==&gt; %s" (agent.sP.contents.BaudRate.ToString())
              agent.sP.contents.Parity      &lt;- p
              agent.sP.contents.DataBits    &lt;- dB
              agent.sP.contents.StopBits    &lt;- sB
              agent.sP.contents.ReadTimeout &lt;- to'             
              agent
  </code></pre>
  
  <p>The baud rate of property contents of variable sP doesn't change after trying to set it to bR...</p>
  
  <p>The output looks like this:</p>
  
  <p>=o==> 19200</p>
  
  <p>=o==> 9600</p>
  
  <p>=o==> 9600</p>