I presented the OO in F# bit as an interoperability option, in practice I imagine mainly data processing funcs, not OOP, in F#, and these functions are called in C#. They're not being interchanged, but you are using their strengths appropriately with something like this. Of course, you can use however much C# and F# as you want. F#/C# interop is pretty common and supported if you google it. I'm not sure what you mean when you say it's weird. Is there something I'm missing?