title: Why does ReactiveUI's ToProperty on an ObservableForProperty cause a FailInit in F#
body: <p>In ReactiveUI 5.2.0 and F# 3.1, the following F# code causes an InvalidOperationException when constructing the object (from a C# WPF app) </p>
  
  <p>The message is "The initialization of an object or value resulted in an object or value being accessed recursively before it was fully initialized" and it occurs during a read of the property passed into <code>ObservableForProperty</code> (although the default is to skip the initial value).</p>
  
  <pre><code>type MyVM() as this =
  inherit ReactiveObject()
  
  let source : obj = obj()
  
  let ofp =            
      this.ObservableForProperty([|"Source"|])
           .Select(fun x -&gt; x.Value)
          .ToProperty(this, (fun y -&gt; y.Result), obj()) // Exception when executing this
  
  member this.Result with get() = ofp.Value
  member this.Source with get() = source // Exception here "The initialization of an object or value resulted in an object or value being accessed recursively before it was fully initialized"
  </code></pre>
  
  <p><strong>Edited to add:</strong>
  The problem seems to be that the <code>ToProperty</code> is causing <code>ObservableForProperty</code> to query the "Source" property on subscribe, and F# has checks that the constructor has completed before properties are queried.</p>
  
  <p><strong>More info:</strong>
  In <code>ReactiveNotifyPropertyChangedMixin.nestedObservedChanges</code>, the combination of <code>kicker</code> and <code>fillInValue</code> cause the value to be queried before any change is notified via <code>PropertyChanged</code></p>