From my point of view, the main distinguishing feature for F# is Statically Resolved Type Parameters. It’s a feature you don’t want to see in business code (same as reflection in C#), but something that enables libraries to take F# to the next level. Compare this to type classes in Haskell and what is called functors in OCaml.
Personally most of the pain points have been in dealing with .net core.
Microsoft.Extensions.Optionsrequires ceremony to use.
These are minor things. For the most part I don’t need dependency injection heavy code in the F# I’ve been writing.
Do you want to send a comment or give me a hint about any issues with a blog post: Open up an issue on GitHub.
Do you want to fix an error or add a comment published on the blog? You can do a fork of this post and do a pull request on github.