Use the created System.Func rather than through the FSharpFunc where we know the specified Type.

If no one has an issue with this, I'll merge it over the next few days.
I would normally use a "match" (with indented code) rather than "function" in multi-line functions like this.  Debugging and readability is improved