My experience playing around with F# on linux was about the same but I used the snap version of dotnet core which when I using LSP/iodine ended up spawning infinite processes. Eventually, after a lot of trouble with that I thought of using C# and it was then that dotnet told me that because I was using a snap install (which the docs at the time recommended) that things wouldn't work. Some time later I switched distros and reinstalled dotnet from a package instead of a snap which had the effect of actually working as stated. TLDR; be weary of using the snap install (maybe it was user error on my part or maybe they've worked out the kinks) and be prepared to install via a package/source.