Yes, there is confusion, because F# has morphed from OCaml to .Net over the years. Basically, the naming conventions are a "breaking change" - old code is inconsistent with new code.
However, the May 2009 CTP has settled the issue.
The Release Notes say...
Standard Library Naming Conventions
The naming conventions adopted for the F# library are as follows:
o All .NET and F# OO code uses PascalCase according to existing .NET guidelines
o The F# functional programming operators such as List.map are for use in F# internal implementation code. This kind of code uses camelCase for operator names
o Underscores should not be used.
So, your question...
Class.MyFunctionName or Module.my_function_name
The answer is
Class.MyFunctionName and Module.MyFunctionName
(applying rule 1 above).
There is still some confusion by comparision with the F# programming operators (eg. List.averageBy), but production F# code should use CamelCase, and thus look like everyone else's .Net code. If in doubt, check the sample code for the CTP.
(I personally like_the_caml_style, but I'll have to GetOverThat)