I wonder if Generalized Algebraic Data Types will ever come to F#. There's an issue for it you could vote for <a href="https://github.com/fsharp/fslang-suggestions/issues/179" rel="nofollow">https://github.com/fsharp/fslang-suggestions/issues/179</a>