I agree with uryga here. F# is not a DSL. There might be confusion, because a lot of F# people like to write DSLs in F#. But it's a full on language like any other. Except for the syntax it's not even that different from C#. Just a little better in terms of little extras it offers.
The only thing vs. C# which I think it lacks is support of unsafe pointer arithmetic. Which I've never really used in C# either.