It's almost to the point where the deciding factors in choosing between (C#-style) OOP and (F#-style) FP are:
- Do you want your data types in one line or 20?
- Pattern matching, or large concretions of if-statements?
- Race conditions: Quality problem, or fun puzzle?