Channel<T> uses ValueTask<T> which is kinda painful in F# for now.
They had tuples, async/await, and match statements a decade ago and every time C# adopts one of their feature they change the implementation and make F# retool. It's kinda awful.
At this point I want F# to do a hard reset, rebuild on top of Roslyn, natively adopt ValueTuple and Task/ValueTask then grow alongside C# like VB tried to.
I've been hoping for basically the same thing. That said, putting any new language on top of Roslyn (not just using it for IL generation, but actually making it a proper provider a la C#) is 1) not supported, and 2) not seeming like it's going to be. I have a language on .NET that I would love to build into a first-class Roslyn provider but there just isn't any support for that right now. Maybe F# folks inside MS can work to change that.
I'm somewhat astounded that VB.Net is still a thing, however.
Using it mostly for scripting like tasks only.
Then it wasn't relevant for .NET Native support, and finally Microsoft keeps ignoring some vocal anti-MS/C# members in the community, which made me loose any remaining interest.
I rather have C# with some FP like features, than a FP language without tooling support and needless forum discussions.
Regarding VB.NET, it is used quite a lot in some enterprise shops.
I have seen many apps that started as office macros and eventually grew up to be VB.NET ones.
Even if VB.NET is more complex than VB was, it still easier than C# for those office employees that know one or two things about coding.