¿Cómo cambio la implementación de Rx Builder para corregir la excepción de desbordamiento de pila?

Estoy tratando de encontrar un Rx Builder para usar Reactive Extension dentro de la sintaxis de F # Computation Expression. ¿Cómo lo arreglo para que no explote la pila? Como el ejemplo de Seq a continuación. ¿Y hay algún plan para proporcionar una implementación de RxBuilder como parte de las Extensiones Reactivas o como parte de futuras versiones de .NET Framework?

open System
open System.Linq
open System.Reactive.Linq

type rxBuilder() =    
    member this.Delay f = Observable.Defer f
    member this.Combine (xs: IObservable<_>, ys : IObservable<_>) = 
        Observable.merge xs ys      
    member this.Yield x = Observable.Return x
    member this.YieldFrom (xs:IObservable<_>) = xs

let rx = rxBuilder()

let rec f x = seq { yield x 
                    yield! f (x + 1) }

let rec g x = rx { yield x 
                    yield! g (x + 1) }


//do f 5 |> Seq.iter (printfn "%A")

do g 5 |> Observable.subscribe (printfn "%A") |> ignore

do System.Console.ReadLine() |> ignore

Respuestas a la pregunta(5)

Su respuesta a la pregunta