Why not just use F#, it's better than Scala and C# at these sorts of things and functional first and immutable first.
It can be done in F# [1], but it's not pretty, and absolutely nails the compiler. The fact that the compiler can be cheated into doing it makes it even more frustrating that there isn't some official support.
Genuinely curious, but what are you doing that the lack of type classes hurts productivity so much?
I now work for one of the largest scala teams in the US. We make heavy use of the Scalaz project and regularly use monad transormers or free monads and both require higher kinded types.